LINQ Union - 字符串保持排序
本文关键字:排序 字符串 Union LINQ | 更新日期: 2023-09-27 18:25:35
return new List<string> { newItem }.Union(currentList.Take(9));
如何将新项目保留在顶部?这看起来很简单,但我的大脑冻结了。
它自然地对字符串进行排序,这意味着我的 newItem 可以出现在列表中的任何位置。我currentList.Remove(newItem);
以防万一它已经在那里了。
尝试使用 Concat
而不是 Union
,前者应该保持顺序,而后者是一个删除重复项并且不保证任何顺序的集合方法:
return new List<string> { newItem }.Concat(currentList.Take(9));
这适用于Linq-To-Objects
如下所述:
枚举此方法返回的对象时,联合 按该顺序枚举第一个和第二个,并生成每个元素 还没有屈服。
但它也适用于数据库驱动的 LINQ 提供程序,因为它是Linq-To-Sql
或Linq-To-Entities
,因为UNION ALL
和UNION
的行为类似(前者保持秩序,后者不(。