3

我想知道是否可以查看字典中的元素以检查是否存在满足某些要求的元素。在我的例子中,我有一个Dictionary<string, Rectangle>和对于每个 Rectangle 值,我想使用Contains方法检查一个点是否包含在这个矩形内:(genericRectangleValue.Contains(aPoint))。

即我想要一些功能,就像我可以说的列表一样:

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

...并且为了记录,是的,我已经考虑过使用List<KeyValuePair<string, Rectangle>>它,但是其他限制要求我使用 Dictionary 方法。

这对我来说不是一个关键问题,但是当你被困在使用字典时,有没有办法在不通过 foreach 循环的情况下做到这一点?

希望这对以后的其他人也有帮助,干杯!

4

1 回答 1

5

只需在字典Where的属性上使用 LINQ:Values

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

如果还需要对条件中的键求值,可以Where直接在字典上使用:

dict.Where(x => condition)

不要忘记using System.Linq;在顶部添加。

于 2013-04-12T13:50:12.320 回答