Do LINQ';s可枚举方法维护元素的相对顺序
本文关键字:维护 方法 元素 顺序 相对 枚举 LINQ Do | 更新日期: 2023-09-27 17:57:43
假设我有List<Foo> foos
,其中元素的当前顺序很重要。如果我随后应用LINQ枚举方法,如GroupBy
、Where
或Select
,我是否可以依赖生成的IEnumerable<Foo>
以与原始列表相同的相对顺序进行迭代?
是的,对于Enumerable
方法(LINQ to Objects,适用于您提到的List<T>
),您可以依赖于Select
、Where
或GroupBy
返回的元素的顺序。对于像ToDictionary
或Distinct
这样内在无序的事物,情况并非如此。
来自Enumerable.GroupBy文档:
CCD_ 13对象按照基于源中产生每个CCD_ 14的第一个密钥的元素的顺序的顺序产生。分组中的元素按照它们在
source
中出现的顺序产生。
对于IQueryable
扩展方法(其他LINQ提供程序),这不一定是真的。