Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如果列表字符串元素包含另一个列表中的字符串元素,如何删除该元素? 安装程序_C#_Xml_Linq - Fatal编程技术网

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)));
}