【发布时间】:2019-10-10 14:36:29
【问题描述】:
我编写了下面的代码来从具有给定键的字典中获取所有值。
Dictionary<string,string> _dictionary;
public List<string> GetValuesUsingKey(string key)
{
List<string> outp = new List<string>();
foreach(var d in _dictionary)
{
if (d.Key == key)
{
outp.Add(d.Value);
}
}
return outp;
}
有没有更简单的方法可以使用 LINQ 实现此结果?
更新:
原来我对字典有误解,虽然我可以为一个键使用多个值但我错了
【问题讨论】:
-
什么是
_dictionary?如果确实是Dictionary<string,string>,则键是唯一的,这意味着每个键最多有 1 个元素。所以最有效的方法就是_dictinoary[key]。 -
@René 但这可能会抛出问题,我推荐
TryGetValue(string key)。 -
所以这意味着在我的情况下我应该使用类似 List
> 的东西? @RenéVogt -
您可能想要
List<KeyValuePair<string,string>>之类的东西,但我们无法确定,因为我们不知道您要在此处存储什么样的数据。 -
如果你的数据对同一个键有多个条目,你可以使用
ILookup<TKey, TElement,它可以通过调用Linq的ToLookup来创建:docs.microsoft.com/en-us/dotnet/api/…
标签: c# linq dictionary