我有两个数据表dt1
和dt2
。 dt1
有1500多行,dt2
有27k +行。两者都有一个共同的列客户编号。我想找到两个数据表中的公共行。我的方法是将较小的数据表存储到字典中,然后使用字典[客户编号]作为LINQ查询中的映射变量来过滤较大的数据表。但我担心这可能需要太多时间。有没有更快的方法呢?
我正在使用的代码如下:
Dictionary<string, string> dict = dt.AsEnumerable().Select(dr => new { Key = 'Cust No', Value = 'Value col' }).ToDictionary(kvp => (string)kvp.Key, kvp => (string)kvp.Value);
List<string> accountNos = dict.Keys.ToList<string>();
IEnumerable<DataRow> filteredRows = dt.Rows.Cast<DataRow>().Where(r => "some condition");
filteredRows.ToList().ForEach(r => r.SetField("col name", accountNos.Any(r['Cust No'].ToString().Contains)));