【发布时间】:2013-03-06 11:45:02
【问题描述】:
List1: {"123456", "432978", "321675", …} // containing 100,000 members
List2: {"7674543897", "1234568897", "8899776644",…} // containing 500,000 members
我想提取 List2 中前 6 位来自 List1 成员的所有项目,所以这里的字符串“1234568897”是有效的,因为它的前 6 位来自 List1 的第一项。 最快的方法是什么?
foreach(string id in List1)
{
string result = List2.FirstOrDefault(x => x.Contains(id));
if(result!=null)
{
//some works here
}
}
这适用于少于 1000 个的组,但是当 List2 项目增长时,这需要很长时间
【问题讨论】:
-
你已经尝试了什么?到目前为止,您为尝试设置了哪些计时机制和测试?
-
使用单个 foreach 循环需要 5 分钟才能给出结果。我尝试过: List2.FirstOrDefault(x => x.Contains(id)) 并且 id 被放置在 foreach 循环中,遍历 List1 中的所有项目
标签: c#