如何迭代列表并在迭代时,迭代另一个列表并用内部列表键值对替换上层列表的值

时间:2014-11-09 15:03:17

标签: c# .net linq .net-4.5

好的我想要的很简单,但我无法正确写出

我想用多个值替换字符串列表的每个值(另一个列表保存此值)。我可以编写几个循环但是我想用一行命令执行它,使用linq

lstCrawlUrlsList<string>

lstReplaceWordsFromUrlsList<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"

1 个答案:

答案 0 :(得分:2)

如果您坚持使用单行,请按照以下步骤操作:

lstCrawlUrls = lstCrawlUrls.Select(pr => lstReplaceWordsFromUrls.Aggregate(pr, (str, mr) =>( str.Replace(mr.Key, mr.Value); )));