【发布时间】:2015-02-06 05:47:51
【问题描述】:
我有一个对象列表
public class Obj
{
public int Num {get;set;}
public List<string> StrList {get;set;}
...other irrelevant properties
}
Obj 列表中的某些项目将包含相同的StrList,但会有不同的Num。我想删除列表中所有具有相似StrList 的Obj,并保留具有最大Num 的Num。
这是我的尝试:
objList = objList.GroupBy(x => new { x.StrList }).OrderByDescending(x => x.Select(y => y.Num)).Select(x => x.First()).ToList();
但我收到一个错误:At least one object must implement IComparable.
最好的方法是什么?
【问题讨论】:
-
你有很多多余的东西不需要。
new { x.StrList }应该只是 x.StrList。也无需在您的订单中进行选择。 -
Mike 对以下错误进行谷歌搜索,您在此处有
least one object must implement IComparable作为一些结果,您可以翻阅 google.com/… -
list.GroupBy(x => x.StrList).Select(g => g.OrderByDescending(x => x.Num).First())