标题可能有点令人困惑(请更改,如果是)
我有一个对象列表,例如:
public class MyObj{
public int ID {get;set;}
public string MyType {get;set;}
}
Run Code Online (Sandbox Code Playgroud)
假设我有一个List<MyObj>包含4个元素的东西.
每个类型的类型是:
myObj1.MyType = "ABC";
myObj2.MyType = "7551";
myObj3.MyType = "AAABB";
myObj3.MyType = "CDE";
Run Code Online (Sandbox Code Playgroud)
如果可能的话,我想订购这份清单,以便"ABC"拥有最大的重量并且是第一位的.列表的其余部分可以按字母顺序排序.
我在.Net 4.5所以可以使用Comparer<>.Create()- 我只是不知道如何做我需要做的事情.
我猜这样的东西会起作用(而且不需要比较器)
myList.OrderByDescending(o=>o.MyType == "ABC").ThenBy(o=>o.MyType);
Run Code Online (Sandbox Code Playgroud)
基本上,它按照是否为ABC来对列表进行排序(并将它们浮动到顶部),然后正常排序.
第一个OrderBy子句是Descending 的原因是false出现在true之前,所以为了将ABCs浮动到顶部,它需要反向排序.
| 归档时间: |
|
| 查看次数: |
265 次 |
| 最近记录: |