2017-04-02 40 views
0

我試圖從文件中讀取(CSV標題)的線,並創建一個預先考慮列的列表「C [NUM] _」中每一列的前與此代碼:增量器內不工作串替換

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

我知道這不是優雅的,但我也不知道爲什麼我的colCount變量不會在替換內部增加?它帶有一個字符串,如:

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

計數器第一次增加,然後不再在替換內。任何見解?我認爲使用Regex ReplaceEvaluator可能會寫得更好,但我還沒有能夠將它們拼湊在一起。

回答

0

Replace方法的參數是字符串,而您輸入的表達式只是一個字符串。計數將始終爲2。這不是Func,它是string

您可以使用下面的LINQ輕鬆實現轉換,你想:

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

甚至都沒有,雖然尋找到Linq的呢。這似乎是工作,但我可以適應。欣賞它。 – Daniel