public class Item
{
public double findMe{ get; set; }
public int? iMayBeNull { get; set; }
}
public Dictionary<int, ICollection<Item>> TheDictionary{ get; set; }
...
TheDictionary dict = new Dictionary<int, ICollection<Item>>();
我正试图找到“findMe”的最小值,其中“iMayBeNull”在所有“dict”的集合中为。
我似乎无法绕过这一个。
非常感谢任何指导。
答案 0 :(得分:7)
使用.SelectMany
将所有集合合并为一个大序列,然后只使用标准的.Where
和.Min
运算符:
TheDictionary.Values
.SelectMany(x => x)
.Where(x => x.iMayBeNull == null)
.Min(x => x.findMe);
答案 1 :(得分:1)
与SelectMany
方法并行的LINQ表达式是多个from子句。
示例:强>
var seq = from col in dict.Values
from item in col
where item.iMayBeNull == null
select item.findMe;
var min = seq.Min();