我有 2 个数据表:包含手机号码的 TableNumber 和包含所有可能的移动代码的混合的 TableCode,总共 6 位数。我想创建一个列表,仅包含其前 6 个数字来自 TableCode 的数字,因此不会考虑其第一个数字不在 TableCode 中的任何数字。我已经用 foreach、.Contains()、IndexOf() 尝试过这个,但它们都很慢,因为数字记录超过 100,000 条,并且遍历所有项目需要很长时间。并与另一张表进行比较。我使用 2 个嵌套的 foreach 循环。我在用 2 个 foreach 做一些愚蠢的事情,因为这将是对来自 TableCode 的 30,000 个成员的 30 亿次搜索,我需要 5 分钟才能给出结果。我的代码是这样的:
foreach(string codetable in TableCode)
{
foreach(string grouptable in TableNumber)
{
if(grouptable.IndexOf(codetable)!=-1)
{
//work here
}
}
}
在这里,我已将表的数字行添加到仅包含数字的列表中,所以在这里我正在搜索列表,但在尝试再次比较 DataTables 时与此类似,它需要的时间太长。