我在LINQ中为两个表执行连接操作,但大部分时间都是为小数据集执行。以下是LINQ查询在LINQ中高效加入查询
for (int i = 0; i <= 200; i++)
{
var test = from r1 in dtRowForNode.AsEnumerable()
join r2 in dtFileRowForNode.AsEnumerable()
on r1.Field<int>("Lng_Upload_Id") equals r2.Field<int>("Lng_Upload_Id")
where ((r1.Field<string>("Txt_Called_Number") == "999") || r1.Field<string>("Txt_Calling_Number") == "888")
select r2.Field<string>("Txt_File_Name");
string[] str = test.Distinct().ToArray();
}
在这里,我有两个DataTable dtRowForNode
有7500左右行和另一种是dtFileRowForNode
一个只有12行。现在
我去为这个循环查询200次,花费近6-7秒即可完成for循环。为什么它要花这么多时间来处理这么小的数据集。
我应该用不同的方式写这个吗?
你真的需要的'AsEnumerable()'? –
@MthetheWWatson我无法得到你的观点先生! –
AsEnumerable()遍历每个项目并将其添加到Enumerable变量 –