C# linq查询中必须至少有一个对象实现IComparable错误
我收到错误“至少有一个对象必须实现IComparable”。有人能解释我为什么会收到此错误吗?您正在调用C# linq查询中必须至少有一个对象实现IComparable错误,c#,linq,C#,Linq,我收到错误“至少有一个对象必须实现IComparable”。有人能解释我为什么会收到此错误吗?您正在调用grps.Max()以获取组中的maximnum项。您的匿名对象是不可比较的。Linq如何知道哪一个是最大值?它应该使用id属性进行比较,还是使用name 我相信您希望选择最高工资: var pairs = new [] { new { id = 1, name = "ram", dept = "IT", sal = "3000" }, new { id = 2, name = "ramesh
grps.Max()
以获取组中的maximnum项。您的匿名对象是不可比较的。Linq如何知道哪一个是最大值?它应该使用id
属性进行比较,还是使用name
我相信您希望选择最高工资:
var pairs = new [] { new { id = 1, name = "ram", dept = "IT", sal = "3000" }, new { id = 2, name = "ramesh", dept = "IT", sal = "5000" }, new { id = 3, name = "rahesh", dept = "NONIT", sal = "2000" },
new { id = 5, name = "rash", dept = "NONIT", sal = "7000" } };
var query = from stud in pairs
where (stud.name.StartsWith("r") && stud.id % 2 != 0)
//orderby stud.sal descending
group stud by stud.dept into grps
select new { Values = grps, Key = grps.Key, maxsal=grps.Max() };
////select new { id = stud.id };
foreach (dynamic result in query)
{
Console.WriteLine(result.Key);
Console.WriteLine(result.maxsal);
foreach (dynamic result2 in result.Values)
{
Console.WriteLine(result2.id + "," + result2.sal);
}
}
Console.Read();
您正在调用
grps.Max()
以获取组中的maximnum项。您的匿名对象是不可比较的。Linq如何知道哪一个是最大值?它应该使用id
属性进行比较,还是使用name
我相信您希望选择最高工资:
var pairs = new [] { new { id = 1, name = "ram", dept = "IT", sal = "3000" }, new { id = 2, name = "ramesh", dept = "IT", sal = "5000" }, new { id = 3, name = "rahesh", dept = "NONIT", sal = "2000" },
new { id = 5, name = "rash", dept = "NONIT", sal = "7000" } };
var query = from stud in pairs
where (stud.name.StartsWith("r") && stud.id % 2 != 0)
//orderby stud.sal descending
group stud by stud.dept into grps
select new { Values = grps, Key = grps.Key, maxsal=grps.Max() };
////select new { id = stud.id };
foreach (dynamic result in query)
{
Console.WriteLine(result.Key);
Console.WriteLine(result.maxsal);
foreach (dynamic result2 in result.Values)
{
Console.WriteLine(result2.id + "," + result2.sal);
}
}
Console.Read();
谢谢你的更正,但是我用你给出的lamda表达式替换后没有得到错误,那么tyepe Icomparable的意义在哪里呢?我想知道linq排序的Icomparable与sql排序的比较背后的故事,你能帮我理解sameThanks以进行更正吗,但是我在用你给出的lamda表达式替换后没有得到错误,那么tyepe Icomparable的意义在哪里呢?我想知道Icomparable for linq排序与sql排序之间的区别,你能帮我理解吗