例如,我有這樣的代碼:如何打破源收集和LINQ結果之間的聯繫
IEnumerable<RSuspectOperationCode> distinctCodes = this.Distinct(); // "this" is some collection
this.Clear()
distinctCodes.Count();
由於LINQ的延遲執行查詢 - 伯爵給我們0我有意思 - 有沒有辦法通過就地結果計算並打破源和結果集合之間的鏈接,獲得一個獨特的集合,清除源集合將不會影響結果集合?
我的解決方法:
List<RSuspectOperationCode> distinctCodes = new List<RSuspectOperationCode>();
distinctCodes.AddRange(this.Distinct(comparer));
this.Clear();
distinctCodes.Count();
但是,我不知道,有沒有更優雅/短呢?
對不起,通過內存類型代碼,mistakened的 – 2014-08-31 07:55:39
可能重複[強制LINQ到不耽誤執行] (http://stackoverflow.com/questions/1064043/force-linq-to-not-delay-execution) – 2014-08-31 07:58:05