如何将字符串与字典中的键值进行比较?

时间:2013-07-18 01:41:06

标签: c# dictionary

如何将字符串与字典中的键值进行比较?假设我的字典键是“f001.name”,“f002.item”和“f003.content”,我需要找出其中只有“foo1”的键。

4 个答案:

答案 0 :(得分:2)

我假设您正在尝试过滤字典中的值列表?

你可以尝试下面的代码,它会过滤掉那些与Key包含“f001”的对:

Dictionary<string, string> filterValues = myValues.Where(s =>    s.Key.Contains("f001")).ToDictionary(s => s.Key, s => s.Value);

答案 1 :(得分:0)

如果必须迭代它,字典不是一个好的选择。它适用于基于散列键值的直接,快速对象查找。

如果您想要通过不同的值来评估它们,List可能是更好的选择。

字典 具有IEnumerable接口,因此您可以使用foreach遍历所有条目。你必须声明一个适合类型的KeyValuePair才能在迭代器中使用,但从那里开始就非常明确。

举个例子:

   foreach( KeyValuePair<string, myObjectType) kvp in MyDictionary)
       if (kvp.Key.Contains("foo") then System.Console.WriteLine(kvp.Key);

答案 2 :(得分:0)

词典中的键是唯一的,因此词典中只有一个foo1键。

当有多个值时,您会迭代集合。

答案 3 :(得分:0)

遍历键列表,如果找到带有子字符串的特定键,则返回

foreach(string key in myDictonary.Keys)
  if(key.Contains("yourString"))
     //return key