【发布时间】:2016-06-30 21:38:25
【问题描述】:
我想按单词对 C# 列表进行排序。假设我有一个 C# 列表(对象),其中包含以下单词:
[{id:1, name: "ABC"},
{id:2, name: "XXX"},
{id:3, name: "Mille"},
{id:4, name: "YYY"},
{id:5, name: "Mill",
{id:6, name: "Millen"},
{id:7, name: "OOO"},
{id:8, name: "GGGG"},
{id:9, name: null},
{id:10, name: "XXX"},
{id:11, name: "mil"}]
如果用户将Mil 作为搜索键传递,我想返回以搜索键开头的所有单词,然后返回所有不符合条件的单词并按字母顺序排序。
我能想到的最简单的方法是在结果集上运行一个 for 循环,将所有以搜索键开头的单词放入一个列表中,并将重命名的单词放入另一个列表中。对第二个列表进行排序,然后它们将两个列表结合起来以返回结果。
我想知道是否有更智能或内置的方法来获得所需的结果。
【问题讨论】:
-
所以您想对您的集合进行排序,以便以您的搜索值开头的条目排在第一位,然后是不匹配的条目,并且这两个组本身都是按字母顺序排列的?
-
@JamesFaix 这就是我想要的!!
标签: c# .net linq sorting c#-4.0