我对C#中的WhereListIterator
的工作方式有疑问。
示例:在这种情况下,当我使用where选择时:
var itemsNull = products.Where(p => p.ItemId == 0).Select(ell => ell.SKU);
itemsNull
的类型为WhereListIterator
。
此类包含源属性。我想知道来源中是否包含产品列表的副本。
答案 0 :(得分:0)
如果简单地说,LINQ表达式只有在需要时才执行,因此itemsNull
仅包含对源属性表达式的引用,并且仅在通过foreach
或其他LINQ表达式。
您可以通过在末尾添加.ToList()
来强制表达式立即执行(因为ToList()
还会迭代IEnumerable)。