将数组的每个字段分配给变量foreach循环

时间:2013-04-17 12:13:54

标签: c# asp.net arrays

我有一个字符串数组,每个循环都有一个。我想循环遍历数组并对每个字段执行某些操作,然后将每个字段的结果输出到新变量。

编辑:数组的每个字段都会从隐藏字段中获取一个值,该字段表示分钟内的时间。在foreach循环中,我打算将每个字段从分钟转换为HH:mm格式。然后我需要将新格式传递给一个新变量。

数组:

string[] field = new string[8];
        field[0] = field_0_0.Value;
        field[1] = field_0_1.Value;
        field[2] = field_0_2.Value;
        field[3] = field_0_3.Value;
        field[4] = field_1_0.Value;
        field[5] = field_1_1.Value;
        field[6] = field_1_2.Value;
        field[7] = field_1_3.Value;

Foreach循环:

foreach (string newfields in field)
{
    //Do something to each field  
}

我正在寻求帮助的部分是将每个结果分配给一个新变量。任何人都能指出我正确的方向,甚至建议采用不同的/更好的方法来做到这一点。

提前致谢。

4 个答案:

答案 0 :(得分:2)

只需使用普通的for循环。

for(int i=0;i<field.Length;i++) {
    string curValue = field[i];

    // do something with curValue, change it in some way

     field[i] = curValue; //update
}

如果这不是您所要求的,请澄清。

答案 1 :(得分:1)

您可以更改您枚举的对象,但不能更改foreach。您将需要使用for循环。通过评论修改样本

List<string> mylist = new List<string>();
    mylist.Add("item1");
    mylist.Add("item2");

    for (int i = 0; i < mylist.Count; i++)
    {
        mylist[i] = mylist[i].Replace("i", "o");
    }

答案 2 :(得分:1)

使用for代替foreachforeach不允许您更改价值。

像这样使用for

for(int i = 0; i < field.Length; i++)
   //Do something to each field 
   field[i] = "text"+i;

答案 3 :(得分:0)

  1. 创建变量计数器并将其设置为零。
  2. long i = 0;
  3. 为每个循环创建一个。
foreach(string field in fields){
    // Use i counter to initialize the array index
    fields[i]="New Field String.";
    // Increment the counter i by 1
    i++;
}
  1. 这将为每个字段数组值分配一个值