3

Dictionary の要素を調べて、特定の要件を満たす要素が存在するかどうかを確認できるかどうか疑問に思っています。私の場合、各 Rectangle 値について、 ( ) メソッドDictionary<string, Rectangle>を使用して、この四角形内にポイントが含まれているかどうかを確認したいと思います。ContainsgenericRectangleValue.Contains(aPoint)

つまり、私が言えるリストの場合のように、いくつかの機能が欲しいです:

 dictionaryList.Exists((delegate(KeyValuePair<string, Rectangle> kvp) { return kvp.Value.Contains(e.Location); })

...そして、記録のために、うん、これを使用することを検討しList<KeyValuePair<string, Rectangle>>ましたが、他の制限により、辞書アプローチを使用する必要があります。

私の側では重大な問題ではありませんが、辞書の使用に行き詰まった場合、foreach ループを経由せずにこれを行う方法はありますか?

これが将来的に他の人にも役立つことを願っています, 乾杯!

4

1 に答える 1

5

Where辞書のValuesプロパティでLINQ を使用するだけです。

var rectsContainingLocation = dict.Values.Where(x => x.Contains(e.Location));

条件内のキーも評価する必要がある場合はWhere、辞書で直接使用できます。

dict.Where(x => condition)

using System.Linq;上部に追加することを忘れないでください。

于 2013-04-12T13:50:12.320 に答える