如何根据字段数对List <List <string >>进行排序?
列表得到了结构
a|b|c|d|eeee|rere|ewew|
ewqewq|ewew|
ewew|ewewewewew|
Run Code Online (Sandbox Code Playgroud)
按排序我想根据块数(asc/desc)来做
编辑
在<list<list<string>> is "items"我访问由项每个列表[0]的每
这些项[xx]是一个列表,这意味着我希望它们对数组进行排序
a|b|c|d|eeee|rere|ewew|
a|b|c|d|eeee|rere
a|b|c|d|eeee
Run Code Online (Sandbox Code Playgroud)
如果您不需要"就地"排序,可以使用LINQ为您提供一个新的排序列表.
var sorted = oldList.OrderBy( l => l.Count );
Run Code Online (Sandbox Code Playgroud)
否则,您需要编写自己的Comparer,它接受两个列表并按其大小返回排序.
public class CountComparer : IComparer<List<string>>
{
#region IComparer<List<string>> Members
public int Compare( List<string> x, List<string> y )
{
return x.Count.CompareTo( y.Count );
}
#endregion
}
oldList.Sort( new CountComparer() );
Run Code Online (Sandbox Code Playgroud)
或者,正如@Josh指出的那样,你可以用lambda表达式做到这一点.
oldList.Sort( (a,b) => a.Count.CompareTo( b.Count ) )
Run Code Online (Sandbox Code Playgroud)
如果比较相对简单或使用一次,IMO后者可以很好地工作,但实际的类可能更好,因为比较变得更复杂或者你需要在多个地方重复它.