我的相关代码如下所示:
//The object
Class MyClass
{
int PositionCount { get; set;}
Value { get; set;}
MyClass(int positionCount, double value)
{
PositionCount = positionCount;
Value = value;
}
}
//And then, later, using the object
List<MyClass> list = new List<MyClass>();
MyClass obj1 = new MyClass(18, 356.2);
list.Add(obj1);
MyClass obj2 = new MyClass(18, 356.2);
list.Add(obj2);
MyClass obj3 = new MyClass(19, 22.5);
list.Add(obj3);
MyClass obj4 = new MyClass(19, 30.325);
list.Add(obj4);
MyClass obj5 = new MyClass(19, 356.2);
list.Add(obj5);
我想要找到的是此列表中最常见的数字对。在这里,我希望得到obj1和obj2中的值,因为它们各自重复两个数字。我没有分别获得PositionCount和Value的模式,因为(在这种情况下),PositionCount的模式是19,Value是356.2,但是列表中没有一对(或更多)元素这两个数字。
感谢任何指导。
答案 0 :(得分:3)
这样的事情:
var mostCommon = list
.GroupBy(x=>new {x.PositionCount, x.Value})
.OrderByDescending(x=>x.Count()).First();
它将按您的属性进行分组,然后以最大的数量
进行分组