当前位置:编程学习 > C#/ASP.NET >>

foreach迭代变量

 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迭代变量”,无法为他赋值】错误,请问我应该怎么达到这种效果呢 --------------------编程问答-------------------- foreach里的迭代变量是不能被赋值的,需要改用for循环,自己试下。 --------------------编程问答-------------------- foreach里的迭代变量只能用,不能改的:
for(int i=0;i<FormAccess.GruopCollection.Count;i++)
{
....
}
--------------------编程问答-------------------- 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;
  }
}
 这样试试 --------------------编程问答--------------------
引用 1 楼 dalmeeme 的回复:
foreach里的迭代变量是不能被赋值的,需要改用for循环,自己试下。

能读不能改的,看MSDN --------------------编程问答-------------------- 谢谢你们,但是FormAccess.GroupCollection[i]这样写的话会提示【无法将带[]的索引应用于“FormAccess.GroupCollection”类型的表达式】 --------------------编程问答-------------------- 不是不能修改的,可以的,只不过不能对item修改可以对item里面的属性,或者对象可以修改吧, --------------------编程问答-------------------- 。。。foreach 不允许在运行时修改foreach里面的值

而for循环可以修改制定index的值

如果说你想进行替换的话。 
可以考虑加一个变量。 来进行替换 这样就可以了。
if(xxx){
int temp = list[1];
list[1] = list[2];
list[2] = temp;
}
这边list【1】的值就与list【2】交换了。 
补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,