增量器不能在字符串替换中工作

时间:2017-04-02 06:57:08

标签: c# c#-4.0

我正在尝试从文件(csv标题)中读取一行,并使用以下代码创建一个列在每列前面的“c [num] _”列列表:

int colCount=0;
string line = "col1,col2,col3,col4,col5";
string ColumnList = "([" + (++colCount).ToString() + "_" + line.Replace(",", "],[c" + (++colCount).ToString() + "_") + "]";

我知道它不优雅,但我也不确定为什么我的colCount变量不会在replace中增加?它的结果如下:

([c0_col1],[c1_col2],[c1_col3],[c1_col4],[c1_col5])

计数器第一次递增,然后在替换内不再递增。任何见解?我认为用Regex ReplaceEvaluator编写它可能会更好,但我还没能将它们拼凑在一起。

1 个答案:

答案 0 :(得分:0)

Replace方法的参数是字符串,你输入的表达式只是一个字符串。计数始终为2。它不是Func,而是string

您可以使用以下Linq轻松实现您想要的转换:

string ColumnList = string.Join(",", line.Split(',').Select((s, i) => $"[c{i + 1}_{s}]"));