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;
}
}
这样试试 --------------------编程问答--------------------
能读不能改的,看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