如何按字段对列表进行排序
美好的一天 4 你们
我有一个对象列表
我的对象就像
Product = "iPhone";
Category = "SmartPhone";
Product = "HP";
Category = "PC";
Product = "HTC";
Category = "SmartPhone";
我将每个对象插入到我的测试中所以它就像
List<Myobject> MyList = new List<Myobject>();
现在我需要按类别排序/排序我的列表
因为我需要我的列表首先显示智能手机类别然后显示其他类别
Good day 4 u all
I have a list of objects
My objects like
Product = "iPhone";
Category = "SmartPhone";
Product = "HP";
Category = "PC";
Product = "HTC";
Category = "SmartPhone";
And I insert each object into my test so its like
List<Myobject> MyList = new List<Myobject>();
And now I need to sord/order MyList by the category
As I need my list to show the SmartPhone category first then other
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您可以使用 List.Sort
相对于 LINQ
OrderBy
的优势在于,您可以就地对列表进行排序,而不是生成一个IOrderedEnumerable
那么你必须在List
中重新转换。You can use List.Sort
The advantage over the LINQ
OrderBy
is that you'll order the list in-place instead of generating anIOrderedEnumerable<T>
that then you have to re-transform in aList<T>
.查看 LINQ OrderBy 扩展方法。
如果您需要更复杂的方式对类别进行排序,您可以创建一个实现 IComparer 接口的类,并在其中实现排序逻辑。
您可以不使用 LINQ 来完成此操作:
或者使用 LINQ:
Check out the LINQ OrderBy extension method.
If you need a more complex way to sort the categories, you could create a class which implements the IComparer interface, and implement your sort logic in it.
You can do it without using LINQ:
Or, with using LINQ:
您可以使用
Sort
方法和自定义比较,按类别(降序)排序,然后按产品(升序)排序:如果您想单独列出智能手机,然后升序排序:
You can use the
Sort
method and a custom comparison, to sort by category (descending) and then by product (ascending):If you want to single out smartphones, and then sort ascending: