通过LINQ对列表中的特定值进行排序



Hi我目前有一个字符串列表,其中包含值:

*Item1, *Item2, Test2, Test4, *Item3, Test1, *Item4, *Item5

我如何重新排列它们,并将所有带星号的值都放在列表的第一部分,同时保持非星号项目的顺序:

*Item1, *Item2, *Item3, *Item4, *Item5, Test2, Test4, Test1

简单的OrderByDescending将完成

var str = "*Item1, *Item2, Test2, Test4, *Item3, Test1, *Item4, *Item5";
var arr = str.Split(new char[] { ' ', ',' }, StringSplitOptions.RemoveEmptyEntries);
var ordered = arr.OrderByDescending(x => x.StartsWith("*")).ToArray();

最新更新