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」がnullである「findMe」の最小値を見つけようとしています。

これに頭を巻くことができないようです。

任意のガイダンスをいただければ幸いです。

4

2 に答える 2

7

を使用.SelectManyして、すべてのコレクションを1つの大きなシーケンスにまとめてから、標準.Where.Min演算子を使用します。

TheDictionary.Values
    .SelectMany(x => x)
    .Where(x => x.iMayBeNull == null)
    .Min(x => x.findMe);
于 2012-04-13T18:24:00.217 に答える
1

メソッドに対応するLINQ式SelectManyは、複数の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 に答える