C# 如果列表字符串元素包含另一个列表中的字符串元素,如何删除该元素? 安装程序
我有这三张单子C# 如果列表字符串元素包含另一个列表中的字符串元素,如何删除该元素? 安装程序,c#,xml,linq,C#,Xml,Linq,我有这三张单子 List<List<string>> tokens = new List<string>(); List<string> token = new List<string>(); List<string> sets = new List<string(); 集合列表如下所示 {"ARB", ..., "AVR", ..., "GTC", ..., "ZEN"} {..., " <set p
List<List<string>> tokens = new List<string>();
List<string> token = new List<string>();
List<string> sets = new List<string();
集合
列表如下所示
{"ARB", ..., "AVR", ..., "GTC", ..., "ZEN"}
{..., " <set picURL="http://magiccards.info/extras/token/Gatecrash/Domri-Rade-Emblem.jpg" picURLHq="" picURLSt="">GTC</set>", ...}
我想检查令牌
中的每个令牌
,并删除令牌
中包含集合
中任何元素的每个字符串
例子
tokens
列表有几个token
元素。一个token
(比如token1)有这样一个元素
{"ARB", ..., "AVR", ..., "GTC", ..., "ZEN"}
{..., " <set picURL="http://magiccards.info/extras/token/Gatecrash/Domri-Rade-Emblem.jpg" picURLHq="" picURLSt="">GTC</set>", ...}
假设集合
列表被修改为只包含{“ARB”、“GTC”、“M12”}
如何遍历标记中的每个标记
,并删除包含集合
中任何字符串元素的字符串元素?那么,在该过程之后,token1将不再具有上面的元素,而token2将只具有第二个呈现的元素
我试过的
这将遍历令牌
中的每个令牌
,并删除令牌
中包含字符串“GTC”
的任何元素
我查看了一些其他问题,发现了这个问题,但它不起作用
foreach (var token in tokens)
{
token.RemoveAll(sets.Contains);
}
谢谢你的帮助。这很有效。非常感谢。将在时间限制结束时标记为答案。旁注-您的示例看起来像XML。。。请考虑使用XML API,如果它确实是XML。@ AlexeiLevenkov,我不知道任何XML API,但事后聪明显然会存在。谢谢,我会研究它们。起点-搜索-MSDN上有很多例子,这个网站上有很多问题。@AlexeiLevenkov之前的一次简短搜索指出我只加载XML,但这些关键字给了我更多。特别是,获取标签之间的信息。在我的例子中,
标记和从XML文件中提取更多信息的其他更简单方法之间的任何内容。在尝试笨拙的方法之前,我真的应该寻找(并研究)API。再次感谢您的指导。
foreach (var token in tokens)
{
token.RemoveAll(str => sets.Any(s => str.Contains(s)));
}
foreach (var token in tokens)
{
token.RemoveAll(str => sets.Any(s => str.Contains(s)));
}