我在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變量 –