我有一個簡單的類:LINQ(to Object)查詢是否可能包含無限循環?
public class RawBomItem
{
private string material;
private string item;
private string component;
private string quantity;
private string b;
private string spt;
...
}
和每一個數據成員有一個屬性。
然後,我有一個包含這個類
private List<RawBomItem> rawBom;
的情況下,該列表包含超過70000項的列表。
在這一點上,我想在這個列表上運行一個複雜的LINQ查詢。
List<string> endProducts = new List<string>(
rawBom.Where(x1 => new List<string>(rawBom.Select(x2 => x2.Component)
.Distinct())
.Contains(x1.Material) && (x1.B != "F"))
.Select(x3 => x3.Material));
查詢看起來好像進入了一個無限循環。 (我已經等了幾分鐘才關閉它)
我會把它變成數據庫工作,我只是對什麼可以是問題感興趣。
爲什麼你需要在一行中做到這一點? – LukeHennerley
好吧,試着將列表長度減少到幾百,看看它是否仍然有效... –
這個查詢的作用還不太清楚,但考慮它會過濾70K項目。對於每個處理70K項目,每個項目最多兩次。所以我們正在研究大約5到10億次**迭代。這應該需要一些時間。換句話說:O(N²)不好。 – Jon