繁体   English   中英

如何在C#中有条件地从记事本逗号中读取并分隔和更新特定列的所有行

[英]How to read all lines from notepad comma separated and updated specific column conditionally in C#

我们如何从记事本逗号中读取所有行,并以有条件的方式分隔并更新特定的列,它成功地迭代了没有错误,但是没有更新C#中的值

string[] existingLines = File.ReadAllLines(filepath);    

foreach (var row in existingLines)
{                       
    row.Split(Text_Separator)[0] = "Test Data";
}

var newdata = existingLines;

您需要在迭代过程中使用for循环来修改项目。 我相信如果使用foreach会出错。 这是因为您要公开一个只读的枚举器。

这将遍历每一行,修改一列并替换当前行。

string[] existingLines = File.ReadAllLines(filepath);    

foreach (var i = 0; i < existingLines.Length; i++)
{                       
    // retrieve row by index
    var row = existingLines[i];
    // split into array of columns
    var columns = row.Split(Text_Separator); 
    // update column
    columns[0] = "Test Data";
    // create row from array of columns
    var updatedRow = string.Join(Text_Separator, columns);
    // update row in array of rows
    existingLines[i] = updatedRow;
}

var newdata = existingLines;

String.Split方法将创建一个字符串数组的新实例,该实例不会引用到existingLines变量。 因此,更新从Split返回的值不会反映在existingLines

String[] stringArray = splitStrings;
if( arrIndex!= maxItems) { 
    stringArray = new String[arrIndex];
    for( int j = 0; j < arrIndex; j++) {
        stringArray[j] = splitStrings[j];
    }   
}
return stringArray;

https://github.com/Microsoft/referencesource/blob/master/mscorlib/system/string.cs

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM