为什么下面的代码不能对我的列表进行排序?
List<string> lst = new List<string>() { "bac", "abc", "cab" };
lst.OrderBy(p => p.Substring(0));
由于 OrderBy 返回 IOrderedEnumerable,因此您应该进行以下操作:
lst = lst.OrderBy(p => p.Substring(0)).ToList();
你还可以采取以下方法:
lst.Sort();
lst
)上执行操作。lst = lst.OrderBy(p => p).ToList();
在 LINQ 的术语中。
string[] words = { "bac", "abc", "cab" };
var sortedWords = from w in words
orderby w
select w;
Console.WriteLine("The sorted list of words:");
foreach (var w in sortedWords)
{
Console.WriteLine(w);
}
List<T>.Sort
是一种不稳定的排序方法,而OrderBy
则是稳定的。当然,在这种情况下,排序仅按照第一个字母进行,而使用list.Sort
而没有任何参数将按整个字符串进行排序。 - Jon Skeet.Substring(0)
返回整个字符串,我相信... 对于第一个字符,需要使用.Substring(0,1)
或[0]
... - Stephen Chunglst = lst.OrderByDescending(p => p.Substring(0)[0] == searchValue[0]).ToList();
- Pranesh Janarthanan