LINQ 的可枚举方法是否保持元素的相对顺序?



假设我有List<Foo> foos,其中元素的当前顺序很重要。如果我随后应用LINQ枚举方法,如GroupByWhereSelect,我是否可以依赖生成的IEnumerable<Foo>以与原始列表相同的相对顺序进行迭代?

是的,对于Enumerable方法(LINQ to Objects,适用于您提到的List<T>),您可以依赖于SelectWhereGroupBy返回的元素的顺序。对于像ToDictionaryDistinct这样内在无序的事物,情况并非如此。

来自Enumerable.GroupBy文档:

CCD_ 13对象按照基于源中产生每个CCD_ 14的第一个密钥的元素的顺序的顺序产生。分组中的元素按照它们在source中出现的顺序产生。

对于IQueryable扩展方法(其他LINQ提供程序),这不一定是真的。

相关内容

  • 没有找到相关文章

最新更新