Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在字典中输入关键字的foreach_C# - Fatal编程技术网

C# 在字典中输入关键字的foreach

C# 在字典中输入关键字的foreach,c#,C#,如何循环具有特定键的字典值 foreach(somedictionary<"thiskey", x>...? foreach(somedictionary。。。? /M给定的键最多有一个值,因此foreach没有任何作用。也许您正在考虑某种多重映射的概念。我不知道.Net类库中是否存在这样的东西。只有一个字典每个键有一个值,因此不需要foreach…您可以检查一下我是否是否存在(ContainsKey或TryGetValue): 如果SomeType实际上是一个列表,那么您当然可

如何循环具有特定键的字典值

foreach(somedictionary<"thiskey", x>...?
foreach(somedictionary。。。?
/M

给定的键最多有一个值,因此
foreach
没有任何作用。也许您正在考虑某种多重映射的概念。我不知道.Net类库中是否存在这样的东西。

只有一个字典每个键有一个值,因此不需要foreach…您可以检查一下我是否是否存在(
ContainsKey
TryGetValue
):

如果
SomeType
实际上是一个列表,那么您当然可以:

List<SomeOtherType> list;
if(somedictionary.TryGetValue("thisKey", out list)) {
    foreach(value in list) {
        Console.WriteLine(value);
    }
}

假设您有一个这样声明的字典:
var d=new dictionary();
。您可以像这样循环给定键的列表值:

foreach(var s in d["yourkey"])
    //Do something

此扩展方法可能有助于遍历字典:

public static void ForEach<TKey, TValue>(this Dictionary<TKey, TValue> source, Action<KeyValuePair<TKey, TValue>> action) {
   foreach (KeyValuePair<TKey, TValue> item in source)
      action(item);
}
publicstaticvoidforeach(此字典源,操作){
foreach(源中的KeyValuePair项)
行动(项目);
}

一个字典每个键只有一个值,因此不需要foreach…如果需要在键上迭代,您可以看看这个答案。multimap=
ILookup
,最常见的是从
可枚举的具体
查找。ToLookup
我应该在某些列表上使用linq吗?但该值可以是一个列表。@klausby斯科夫:那么你只需要在一个列表上迭代,而它来自一本字典这一事实将是相当无趣的。没错,但你永远不会知道这些问题。
foreach(var s in d["yourkey"])
    //Do something
public static void ForEach<TKey, TValue>(this Dictionary<TKey, TValue> source, Action<KeyValuePair<TKey, TValue>> action) {
   foreach (KeyValuePair<TKey, TValue> item in source)
      action(item);
}