如何更新 foreach 中的列表

How update a list in a foreach

我有一个列表的 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);
    }

谢谢!

使用 for 修改列表。不是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);
          }