【发布时间】:2009-10-28 12:16:08
【问题描述】:
我有一个Dictionary<string, string>。
我需要在该字典中查看是否存在基于其他地方的输入的值,如果存在则将其删除。
ContainsValue 只是表示真/假,而不是该项目的索引或键。
救命!
谢谢
编辑:刚刚找到这个 - 你怎么看?
var key = (from k in dic where string.Compare(k.Value, "two", true) ==
0 select k.Key).FirstOrDefault();
编辑 2:我也刚刚敲了这个可能有用的
foreach (KeyValuePair<string, string> kvp in myDic)
{
if (myList.Any(x => x.Id == kvp.Value))
myDic.Remove(kvp.Key);
}
【问题讨论】:
-
我认为您需要一本 BiDictionary。检查这个问题:stackoverflow.com/questions/255341/…
-
@Edit 2:您要在枚举集合时从集合中删除内容?这不会引发异常吗?
-
@JustLoren - 好点!将枚举列表并运行 LINQ 以查找密钥(如果存在),然后直接从我的字典中调用 remove
-
@Jon,foreach 也可以,只要在找到并删除密钥后添加一个中断即可。
标签: c# .net linq dictionary