【发布时间】:2011-01-12 11:15:04
【问题描述】:
标题说明了一切。我似乎找不到DictionaryOrDefault \ ListOrDefault \ CollectionOrDefault 选项。
有这样的方法吗?如果不是,我该怎么做:
MyClass myObject = MyDictionary
.SingleOrDefault(x =>
{
if (x.Value != null)
return (x.Value.Id == sourceField.SrcField.Id);
else
return false;
}).Key;
如果有多个匹配项? (我得到了一个执行结果,因为 SingleOrDefault 仅适用于单个结果(想象一下!)。)
我想我需要更清楚(尽管where 的答案看起来不错)。
我有上述声明。我更改了我的程序,使其不总是返回 1(可能有多个值与一个键匹配)。那失败了,所以我正在寻找要返回的集合(而不仅仅是一个项目)。
【问题讨论】:
-
这里有一点澄清,你试图获得许多适合谓词的值,或者只是一个,无论它是什么?
-
“标题说明了一切。”不是真的,
DictionaryOrDefault是什么意思?请仔细、清晰、正确地指定预期的语义。 -
那么你想要的是如果没有匹配则返回 null 或者如果有一个或多个匹配则返回一个列表?
标签: c# .net collections dictionary extension-methods