3
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>>();

我试图在所有“dict”的集合中找到“iMayBeNull”为空的“findMe”的最小值。

我似乎无法绕过这个。

任何指导将不胜感激。

4

2 回答 2

7

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

TheDictionary.Values
    .SelectMany(x => x)
    .Where(x => x.iMayBeNull == null)
    .Min(x => x.findMe);
于 2012-04-13T18:24:00.217 回答
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();
于 2012-04-14T08:00:12.167 回答