0

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

4

4 回答 4

2

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

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

Dictionary<string, string> filterValues = myValues.Where(s =>    s.Key.Contains("f001")).ToDictionary(s => s.Key, s => s.Value);
于 2013-07-18T02:11:05.597 回答
0

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

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

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

举个例子:

   foreach( KeyValuePair<string, myObjectType) kvp in MyDictionary)
       if (kvp.Key.Contains("foo") then System.Console.WriteLine(kvp.Key);
于 2013-07-18T01:44:47.283 回答
0

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

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

于 2013-07-18T01:45:36.837 回答
0

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

foreach(string key in myDictonary.Keys)
  if(key.Contains("yourString"))
     //return key
于 2013-07-18T02:05:01.153 回答