我想从列表中删除重复项,而不更改列表中唯一元素的顺序。
Jon Skeet 和其他人建议使用以下内容:
list = list.Distinct().ToList();
引用:
是否保证唯一元素的顺序与之前相同?如果是,请提供证实这一点的引用,因为我在文档中找不到任何内容。
最佳答案
不能保证,但这是最明显的实现。如果不按顺序返回它们,将很难以流式方式实现(即它会尽快返回结果,尽可能少地读取)。。
您可能想阅读我在 Edulinq implementation of Distinct() 上的博文.
请注意,即使这对于 LINQ to Objects 是有保证的(我个人认为应该是这样),这对其他 LINQ 提供程序(例如 LINQ to SQL)也没有任何意义。
IMO,LINQ to Objects 中提供的保证级别有时有点不一致。一些优化被记录在案,其他的则没有。哎呀,有些文档完全错误。
关于c# - Distinct() 方法是否保持序列的原始顺序不变?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4734852/