我有一个自定义类型列表。而自定义类型是
public class PossibleMatch
{
public PossibleMatch()
{
StoreIds = new List<long>();
OrderLineIds = new List<long>();
}
public IList<long> StoreIds { get; set; }
public IList<long> OrderLineIds { get; set; }
}
我必须以这样的方式对列表进行排序,即商店数量较少且订单行数量较多的商品应位于顶部。
提前致谢。
最佳答案
LINQ 仅有用于此的方法。
尝试以下先按具有最少 StoreId 的匹配项进行排序,然后按具有最多 OrderLineId 的匹配项进行子排序:
var possibleMatches = new List<PossibleMatch>();
var ordered = possibleMatches.OrderBy(pm => pm.StoreIds.Count).ThenByDesc(pm => pm.OrderLineIds.Count);
或者先按具有最多 OrderLineId 的匹配项进行排序,然后按具有最少 StoreId 的匹配项进行子排序:
var ordered = possibleMatches.OrderByDesc(pm => pm.OrderLineIds.Count).ThenBy(pm => pm.StoreIds.Count);
关于c# - C#中的排序列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13194494/