2013-06-03 169 views
0

我想从字符串列表中替换,找到的字符串与多个字符串。 这是我到目前为止有:用字符串列表替换字符串列表中的字符串

private List<string> AddBinList(int CSNum, List<string> dataLogLines) 
    { 
     foreach (var line in dataLogLines) 
     { 
      try 
      { 
       if (line.Contains("&ALLPASSBINNUMBER&") && line.Contains("&ALLPASSBINNAME&")) 
       { 
        List<string> newLines = new List<string>(); 
        foreach (var passBin in site[CSNum].Tokens.PassBins) 
        { 
         string outputLine = line.Replace("&ALLPASSBINNUMBER&", passBin.Value.ToString()); 
         outputLine = line.Replace("&ALLPASSBINNAME&", passBin.Key); 
         newLines.Add(outputLine); 
        } 

        dataLogLines = dataLogLines.Select(x => x.Replace(line, newLines)).ToList(); 
       } 
      } 
      catch { } 
     } 
     return dataLogLines; 
    } 

EDITIORS注:的OP是遇到的问题是

dataLogLines = dataLogLines.Select(x => x.Replace(line, newLines)).ToList(); 

是给编译器错误。

+1

什么你有问题吗?另外你为什么要捕捉所有的异常,它可能会隐藏任何导致程序无法工作的东西。 –

+0

该捕获是用于处理字典中不存在的键。替换是不起作用的。我希望能够从一个字符串列表中替换一个字符串和一个新的多个字符串列表 – tondre3na

+1

'我希望能够从一个字符串列表中替换,一个字符串和一个新的多个字符串列表'??? ?如何发布样本输入,预期输出和简要说明? – I4V

回答

2

样品输入将是一个字符串列表,如:{ “物品1”, “ITEM2”}。现在我要替换“ITEM2”新的字符串列表,即{“项目3”,“ITEM4”},所以我最终名单看起来像{“物品1”,“项目3”,“ITEM4”

List<string> list1 = new List<string>() { "item1", "item2" }; 
list1 = list1.SelectMany(x => x == "item2" ? new[] { "item3", "item4" } 
              : new[] { x }) 
      .ToList();