HyrroChatGroup Group = new HyrroChatGroup(GroupId, "owner", "member"); 
foreach (HyrroChatGroup CGroup in FormAccess.GroupCollection)
            {
                if (CGroup.GroupId == Group.GroupId)
                {
                    CGroup=Group ;(CGroup是一个“foreach迭代变量”,无法为他赋值)                  
                }
            }
我就是想在CGroup.GroupId == Group.GroupId的时候让CGroup=Group但是它提示【CGroup是一个“foreach迭代变量”,无法为他赋值】错误,请问我应该怎么达到这种效果呢

解决方案 »

  1.   

    foreach里的迭代变量是不能被赋值的,需要改用for循环,自己试下。
      

  2.   

    foreach里的迭代变量只能用,不能改的:
    for(int i=0;i<FormAccess.GruopCollection.Count;i++)
    {
    ....
    }
      

  3.   

    HyrroChatGroup Group = new HyrroChatGroup(GroupId, "owner", "member");  
    for( int i=0;i<FormAccess.GroupCollection.Count;i++)
    {
    if(FormAccess.GroupCollection[i].GroupId ==Group.GroupId )
      {
        FormAccess.GroupCollection[i]=Group;
      }
    }
     这样试试
      

  4.   

    谢谢你们,但是FormAccess.GroupCollection[i]这样写的话会提示【无法将带[]的索引应用于“FormAccess.GroupCollection”类型的表达式
      

  5.   

    不是不能修改的,可以的,只不过不能对item修改可以对item里面的属性,或者对象可以修改吧,
      

  6.   

    foreach 不允许在运行时修改foreach里面的值而for循环可以修改制定index的值如果说你想进行替换的话。 
    可以考虑加一个变量。 来进行替换 这样就可以了。
    if(xxx){
    int temp = list[1];
    list[1] = list[2];
    list[2] = temp;
    }
    这边list【1】的值就与list【2】交换了。