比较字典<string,list <string>&gt;带有值列表的单个值c#</string,list <string>

时间:2014-03-19 08:53:55

标签: c# .net wpf c#-4.0 dictionary

使用相同的键解析xml和表单字典以获取多个值

Dictionary<string, List<string>> dictionary = new Dictionary<string, List<string>>();

doc.Load(confidencethresholdFilePath + "\\input.xml");
// XmlNodeList nodes = doc.DocumentElement.SelectNodes("/root/file");
doc.Normalize();
XmlNodeList nList = doc.GetElementsByTagName("key");
for (int temp = 0; temp < nList.Count; temp++)
{
    string keyvalue = "";
    XmlNode nNode = nList.Item(temp);
    List<String> main = new List<string>();
    ArrayList arrayList = new ArrayList(main);
    XmlElement ele = (XmlElement)nNode;
    keyvalue = ele.GetAttribute("value");
    for (int i = 0; i < ele.ChildNodes.Count; i++)
    {
        if (ele.ChildNodes[i].ChildNodes.Count == 1)
        {
            Double sec = Double.Parse(ele.ChildNodes[i].InnerText);
            int seg = TimeToSegment(sec);
            Console.WriteLine("" + seg);
            main.Add(Convert.ToString(seg));
        }
    }
    dictionary.Add(keyvalue, main);
}

我想使用单值进行comap,但它显示错误  dictionary.ContainsValue(s.sname)无效参数

1 个答案:

答案 0 :(得分:0)

我不确定您要检查的内容,但如果您尝试匹配密钥,请执行以下操作:

dictionary.ContainsKey(s.sname);

或者您可以尝试:

IEnumerable<KeyValuePair<string,List<string>>> ienKeyVals = dictionary.Where(x => x.Value.Contains(s.sname));
  

使用相同的键解析xml和表单字典以获取多个值

字典不能包含重复的键。无法将重复项添加到词典中 - 另一种方法是使用Lookup类。

Enumerable.ToLookup Method

  

从IEnumerable创建一个通用的Lookup。