用字符串列表替换字符串列表中的字符串

时间:2013-06-03 21:09:30

标签: c#

我正在尝试从字符串列表中替换,找到一个包含多个字符串的字符串。 这就是我到目前为止所做的:

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 :(得分:2)

  

示例输入将是一个字符串列表,如:{“item1”,“item2”}。现在我想用新的字符串列表替换“item2”,即{“item3”,“item4”},所以我的最终列表看起来像{“item1”,“item3”,“item4”

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