我的代码看起来像这样:
CollectionoptionInfoCollection = .... List optionInfoList = new List (); optionInfoList = optionInfoCollection.ToList(); if(_isAlphabeticalSoting) Sort optionInfoList
我尝试了optionInfoList.Sort()但它无法正常工作.
使用sort方法和lambda表达式非常简单.
myList.Sort((a, b) => String.Compare(a.Name, b.Name))
上面的示例显示了如何按对象类型的Name属性进行排序,假设Name的类型为string.
如果你只是想Sort()
工作,那么你需要实现IComparable
或IComparable
在课堂上.
如果您不介意创建新列表,可以使用OrderBy
/ ToList
LINQ扩展方法.如果要使用更简单的语法对现有列表进行排序,可以添加一些扩展方法,从而启用:
list.Sort(item => item.Name);
例如:
public static void Sort( this List source, Func selector) { var comparer = Comparer .Default; source.Sort((x, y) => comparer.Compare(selector(x), selector(y))); } public static void SortDescending ( this List source, Func selector) { var comparer = Comparer .Default; source.Sort((x, y) => comparer.Compare(selector(y), selector(x))); }