我知道当我遍历 IEnumerable 时,我遍历的是源集合,因此如果我在下一次 IEnumerable 的迭代中修改了源集合,它会计算修改。
所以我想知道,当我有一个排序过的 IEnumerable 时,它会如何影响。
例如,如果我有这个:
List<MyType> myNoOrderedList //add my items
IEnumerable<MyType> myOrderedIEnumerable = myNoOrderedList
.OrderBy(x => x.Property);
foreach(MyType in myOrderedIEnumerable)
{
//Do something
}
假设我有一个包含3个元素的列表,在IEnumerable的每次迭代中,列表是否被排序或只有一次排序?
如果在“做某事”中添加或删除项目会发生什么?IEnumerable是否具有最初排序的项目,还是必须重新排序以考虑列表的修改?