如何更新foreach中的列表

时间:2016-08-16 18:18:41

标签: c# list asp.net-web-api itemsource

我有一个List的foreach,我想更新列表或(我不知道哪个更好)用新值创建一个新的。这该怎么做 ? 我的代码比这更大,因为我正在解密,但如果帮助我这么简单,将修复另一个。

foreach (Envolvido envolvido in ListaDados.ItemsSource)
{
  for (int i = 0; i < ListaDados.ItemsSource.OfType<object>().Count(); i++)
  {
     var suspid = Convert.FromBase64String(envolvido.SUSPID);
     var ivnome = Convert.FromBase64String(envolvido.IVNOME);
  }
}

所以,在所有人的帮助下,我得到了正确答案!

 List<Envolvido> mylist = t.Result;
 for (int index = 0; index < mylist.Count(); index++)
                          {
    var items = mylist.ToList();
    Envolvido envolvido = items[index];

    envolvido.SUSPID= Convert.FromBase64String(envolvido.SUSPID);
    envolvido.IVNOME = Convert.FromBase64String(envolvido.IVNOME);
    }

谢谢!

1 个答案:

答案 0 :(得分:2)

使用代替修改列表。不是foreach。

正如MSDN上所说:

foreach语句用于遍历集合以获取所需的信息,但不能用于添加或删除源集合中的项目以避免不可预测的副作用。如果需要在源集合中添加或删除项目,请使用for循环。

        List<Envolvido> mylist = t.Result;

         for (int index = 0; index < mylist.Count(); index++)
         {
             var items = mylist.ToList();
             Envolvido envolvido = items[index];

             envolvido.SUSPID= Convert.FromBase64String(envolvido.SUSPID);
             envolvido.IVNOME = Convert.FromBase64String(envolvido.IVNOME);
          }