我有这三个清单.
List<List<string>> tokens = new List<string>();
List<string> token = new List<string>();
List<string> sets = new List<string();
Run Code Online (Sandbox Code Playgroud)
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>"}
Run Code Online (Sandbox Code Playgroud)
该sets名单是这样的.
{"ARB", ..., "AVR", ..., "GTC", ..., "ZEN"}
Run Code Online (Sandbox Code Playgroud)
我想通过每一个token在tokens和删除每个字符串中token包含任何元素set.
该tokens列表包含一些token元素.一个token(比如说token1)有一个像这样的元素.
{..., " <set picURL="http://magiccards.info/extras/token/Gatecrash/Domri-Rade-Emblem.jpg" picURLHq="" picURLSt="">GTC</set>", ...}
Run Code Online (Sandbox Code Playgroud)
另一个token(比如说令牌2)有这两个元素.
{..., " <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>", ...}
Run Code Online (Sandbox Code Playgroud)
假设sets列表被修改为仅包含{"ARB", "GTC", "M12"}.
我怎么会去通过每一个token中tokens并删除含有任何字符串元素的字符串元素sets?那么,在那个过程之后,token1上面没有那个元素,而token2只会有第二个呈现的元素?
这将遍历每个tokenin tokens并删除token包含该字符串的任何元素"GTC".
foreach (var token in tokens)
{
token.RemoveAll(str => str.Contains("GTC"));
}
Run Code Online (Sandbox Code Playgroud)
我查看了其他一些问题但发现了这个问题,但它不起作用.
foreach (var token in tokens)
{
token.RemoveAll(sets.Contains);
}
Run Code Online (Sandbox Code Playgroud)
谢谢您的帮助.
foreach (var token in tokens)
{
token.RemoveAll(str => sets.Any(s => str.Contains(s)));
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8630 次 |
| 最近记录: |