我有一个具有三个属性(名称,严重性和出现次数)的对象列表。我需要检索所有与最高严重性匹配的名称,然后再匹配该严重性内出现次数最高的名称。
因此给出一个列表,例如:
Name: Sev: Occ:
Foo 3 2
Bar 2 3
Foobar 2 3
我希望能回到Foo。
给定一个列表,例如:
Name: Sev: Occ:
Foo 3 3
Bar 3 3
Foobar 2 4
我希望能回到Foo和Bar。
我想重要的是要注意,我只需要返回的名称,并且由于对象列表相对较小,因此我不关心多个循环...只是每次在表单上更改值时都会运行该循环。
我承认我的linq-fu严重不足。到目前为止,我已经尝试使用morelinq并进行了两次通行证...
List<Offenders> offenderList = new List<Offenders>();
// offenderList.Add appropriate data objects
var offSev = offenderList.MaxBy(x => x.Severity);
var offOcc = offSev.MaxBy(x => x.Occurrence);
我希望有一个仅包含我想要的记录的列表(offOcc),然后可以遍历该报告的.Names属性。取而代之的是,我得到一个错误:第二条语句中的“违规者”不包含“ MaxBy”的定义。
将您的第一个语句更改为此:
var offSev = offenderList.MaxBy(x => x.Severity).ToList();
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句