好吧,我想要的很简单,但我不能正确地写
我想用多个值替换字符串列表中的每个值(另一个列表包含这些值)。我可以写几个循环,但我想通过使用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"
如果你坚持一行,下面是如何做到的:
lstCrawlUrls = lstCrawlUrls.Select(pr => lstReplaceWordsFromUrls.Aggregate(pr, (str, mr) =>( str.Replace(mr.Key, mr.Value); )));