2012-04-13 4 views
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」<strong>」は、すべての中にヌル</strong>ある「findMe」の最小値を見つけようとしている

私はこの1つの周りに私の頭を包むように見えることはできません。

ご指摘いただければ幸いです。

答えて

7

使用.SelectManyそしてちょうど標準.Where.Min演算子を使用し、一つの大きな順にすべてのコレクションを合体する:

TheDictionary.Values 
    .SelectMany(x => x) 
    .Where(x => x.iMayBeNull == null) 
    .Min(x => x.findMe); 
+0

多くの感謝! SelectManyは私にとって新しいものです。 –

1

SelectMany方法にLINQ式のパラレル句からの倍数です。

例:

var seq = from col in dict.Values 
      from item in col 
      where item.iMayBeNull == null 
      select item.findMe; 

var min = seq.Min(); 
+0

Gregに感謝します。また役に立ちました。 –

関連する問題