如何对 List进行排序 基于 T 的性质?
我的代码如下所示:
Collection<NameValueCollection> optionInfoCollection = ....
List<NameValueCollection> optionInfoList = new List<NameValueCollection>();
optionInfoList = optionInfoCollection.ToList();
if(_isAlphabeticalSoting)
Sort optionInfoList
我尝试了 optionInfoList.Sort() 但它不起作用。
My Code looks like this :
Collection<NameValueCollection> optionInfoCollection = ....
List<NameValueCollection> optionInfoList = new List<NameValueCollection>();
optionInfoList = optionInfoCollection.ToList();
if(_isAlphabeticalSoting)
Sort optionInfoList
I tried optionInfoList.Sort() but it is not working.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
使用排序方法和 lambda 表达式,这非常简单。
上面的示例演示了如何按对象类型的 Name 属性进行排序,假设 Name 的类型为字符串。
Using the sort method and lambda expressions, it is really easy.
The above example shows how to sort by the Name property of your object type, assuming Name is of type string.
如果您只想让
Sort()
工作,那么您需要在类中实现IComparable
或IComparable
。如果您不介意创建新列表,则可以使用
OrderBy
/ToList
LINQ 扩展方法。 如果你想用更简单的语法对现有列表进行排序,你可以添加一些扩展方法,启用:例如:
If you just want
Sort()
to work, then you'll need to implementIComparable
orIComparable<T>
in the class.If you don't mind creating a new list, you can use the
OrderBy
/ToList
LINQ extension methods. If you want to sort the existing list with simpler syntax, you can add a few extension methods, enabling:For example:
您需要设置一个比较器来告诉 Sort() 如何排列项目。
查看 List.Sort 方法 (IComparer) 了解如何操作的示例去做这个...
You need to set up a comparer that tells Sort() how to arrange the items.
Check out List.Sort Method (IComparer) for an example of how to do this...