使用LINQ,在集合中的字典中查找项属性的最小值

Jef*_*ell 3 c# linq linq-to-objects

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>>();
Run Code Online (Sandbox Code Playgroud)

我试图找到"findMe"的最小值,其中"iMayBeNull" 在所有"dict"的集合中都为空.

我似乎无法绕过这一个.

任何指导将不胜感激.

Kir*_*oll 7

用于.SelectMany将所有集合合并为一个大序列,然后只使用标准.Where.Min运算符:

TheDictionary.Values
    .SelectMany(x => x)
    .Where(x => x.iMayBeNull == null)
    .Min(x => x.findMe);
Run Code Online (Sandbox Code Playgroud)