好的我想要的很简单,但我无法正确写出
我想用多个值替换字符串列表的每个值(另一个列表保存此值)。我可以编写几个循环但是我想用一行命令执行它,使用linq
lstCrawlUrls
是List<string>
lstReplaceWordsFromUrls
是List<KeyValuePair<string,string>>
以下不起作用,因为我正在制作语法错误我需要帮助才能修复它谢谢
lstCrawlUrls = lstCrawlUrls.Select(pr =>lstReplaceWordsFromUrls
.ForEach{mr =>( pr.Replace(mr.Key, mr.Value); }))
.ToList<string>();
c#.net 4.5
简单的例子
ListA (string list) = "home","work","play","swim"
listB (keyvalue pairs) = "me;aa","or;cc"
我将ListA的值替换为listB,因此listA变为如下
"hoaa","wcck","play","swim"
答案 0 :(得分:2)
如果您坚持使用单行,请按照以下步骤操作:
lstCrawlUrls = lstCrawlUrls.Select(pr => lstReplaceWordsFromUrls.Aggregate(pr, (str, mr) =>( str.Replace(mr.Key, mr.Value); )));