我有一个Dictionary对象,该对象具有单个键和XElement
s列表(超过380,000个)。我必须根据XElement
的值从XElement
的列表中检索XElement
使用以下代码创建的Dictionary对象:
Dictionary<string, List<XElement>> dictionaryObj = new Dictionary<string, List<XElement>>();
dictionaryObj.Add("KeyName", new List<XElement>());
dictionaryObj["KeyName"].Add(xelementObj); //this line is in a for loop using which I am adding all the XElements to Dictionary object
尝试以下代码来搜索XElement
值
var input ="9879-9890-223-abc-test";
var matchingKeys = dictionaryObj
.Where(kvp => kvp.Value.ToString().Contains(input))
.Select(kvp => kvp.Value);
答案 0 :(得分:0)
由于字典的值的类型为List<XElement>
,因此您需要检查列表中包含的值:
var matchingKeys = dictionaryObj
.Where(kvp => kvp.Value.Any(xElement => xElement.Value == input))
.Select(kvp => kvp.Value);
我的示例将XElement值(文本内容)与提供的输入进行比较。随时根据需要进行调整。
HTH
答案 1 :(得分:0)
谢谢大家提供您的意见。使用以下代码,我可以检索XElement。
foreach (var item in dictionaryObj)
{
var matchedXElement = item.Value.Where(x => x.Value.Contains(input));
}