当前位置: 代码迷 >> C# >> 这个构造的集合,为什么报错
  详细解决方案

这个构造的集合,为什么报错

热度:253   发布时间:2016-05-05 05:18:33.0
这个结构的集合,为什么报错

class Program
{
    public struct DataStruct
    {
        public bool DataIsZhongJiang;
    }
    static void Main(string[] args)
    {
        List<DataStruct> list = new List<DataStruct>();
        DataStruct dd = new DataStruct();
        dd.DataIsZhongJiang = true;
        list.Add(dd);
        dd = new DataStruct();
        dd.DataIsZhongJiang = false;
        list.Add(dd);
        for (int i = 0; i < list.Count;i++ )
        {
            list[i].DataIsZhongJiang = true;  //报错
        }
        Console.ReadKey();
    }
}


上面的代码,for循环遍历list集合,修改结构对象的成员值,可是为什么报错呢?
错误 1 无法修改“System.Collections.Generic.List<控制台1.Program.DataStruct>.this[int]”的返回值,因为它不是变量


这是什么意思啊?

------解决思路----------------------
因为struct的特殊性
http://www.cnblogs.com/hongfei/archive/2014/03/02/3577052.html
------解决思路----------------------
就是DataIsZhongJiang   不能修改呗。把DataStruct 换成类使用。
  相关解决方案