C#"无法分配字段,因为它是foreach迭代变量"

2 c# foreach

我想修剪CSV文件的列标题,下面的字段是一个包含标题名称的数组,我在哪里放置trim()?我把它放在foreach循环中,但VS告诉我"不能分配字段,因为它是一个foreach迭代变量".我究竟做错了什么?

while ((fields = csv.GetCSVLine()) != null) 
{
    if (header)
    {
        foreach (string field in fields) 
        {
              //field = field.trim(); //VS: "cannot assign field because it is a foreach iteration variable"
          headers.Add(field);
        }
}
Run Code Online (Sandbox Code Playgroud)

Joh*_*ica 9

您可以在与Add()呼叫相同的线路上执行此操作.field如果Trim()直接传递结果,则无需覆盖变量Add().

foreach (string field in fields) 
{
    headers.Add(field.Trim());
}
Run Code Online (Sandbox Code Playgroud)


Jas*_*rue 8

您正在尝试更改正在处理的项目的值.

做就是了

var trimmedField=field.Trim();
headers.Add(trimmedField);
Run Code Online (Sandbox Code Playgroud)

  • 或者为了更简洁,你可以使用headers.Add(field.Trim()); (6认同)