设置
我有这三个列表。
List<List<string>> tokens = new List<string>();
List<string> token = new List<string>();
List<string> sets = new List<string();
以下是完整的token
列表,该列表将包含在tokens
列表中。
{"<card>"",
" <name>Domri Emblem</name>",
" <set picURL="http://magiccards.info/extras/token/Gatecrash/Domri-Rade-Emblem.jpg" picURLHq="" picURLSt="">GTC</set>",
" <color></color>",
" <manacost></manacost>",
" <type>Emblem</type>",
" <pt></pt>",
" <tablerow>0</tablerow>",
" <text></text>",
" <token>1</token>",
"</card>"}
sets
列表会像这样。{"ARB", ..., "AVR", ..., "GTC", ..., "ZEN"}
我希望能够遍历
tokens
中的每个token
,并删除token
中包含任何set
中元素的字符串。
示例
tokens
列表有一些token
元素。其中一个token
(假设是token1)有一个如下的元素。
{..., " <set picURL="http://magiccards.info/extras/token/Gatecrash/Domri-Rade-Emblem.jpg" picURLHq="" picURLSt="">GTC</set>", ...}
另一个 token
(比如 token2)具有以下两个元素。
{..., " <set picURL="http://magiccards.info/extras/token/magic-2012/pentavite.jpg" picURLHq="" picURLSt="">M12</set>",
" <set picURL="http://magiccards.info/extras/token/player-rewards-2004/pentavite.jpg" picURLHq="" picURLSt="">MI</set>", ...}
假设sets
列表被修改为只包含{"ARB", "GTC", "M12"}
。
我该如何遍历tokens
中的每个token
,并移除包含在sets
中任意一个字符串元素的字符串元素?因此,在这个过程之后,token1将不再具有上述元素,而token2只会保留第二个元素?
我已经尝试过的方法
以下代码遍历tokens
中的每个token
,并删除包含字符串"GTC"
的任何元素。
foreach (var token in tokens)
{
token.RemoveAll(str => str.Contains("GTC"));
}
我查看了一些其他的问题,发现了这个答案,但它并没有解决问题。
foreach (var token in tokens)
{
token.RemoveAll(sets.Contains);
}
感谢您的帮助。
<set>
标签之间的任何东西,以及从XML文件中提取更多信息的简单方法。在尝试不可控的方式之前,我应该寻找和研究API。再次感谢您的指导。 - KrimCard