使用相同的键解析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)
无效参数
答案 0 :(得分:0)
我不确定您要检查的内容,但如果您尝试匹配密钥,请执行以下操作:
dictionary.ContainsKey(s.sname);
或者您可以尝试:
IEnumerable<KeyValuePair<string,List<string>>> ienKeyVals = dictionary.Where(x => x.Value.Contains(s.sname));
使用相同的键解析xml和表单字典以获取多个值
字典不能包含重复的键。无法将重复项添加到词典中 - 另一种方法是使用Lookup类。
从IEnumerable创建一个通用的Lookup。