代码如下:private struct MyStruct
        {
            int a;
            string b;
            string c;
        }
List<MyStruct> myList = new List<MyStruct>();for(int i=0;i<10;i++)
       {
          MyStruct ms=new MyStruct();
          ms.a=10;
          ms.b="adbd0";
          myList.Add(ms);
       }for(int i=0;i<10;i++)
       {
           myList[i].c="adfsa";//这里就报错了:错误 1 无法修改“System.Collections.Generic.List<test.Form1.MyStruct>.this[int]”的返回值,因为它不是变量
       }
请各位大侠指点一下,如果我想直接给这个元素赋值的话,应该怎么办才不会报错呢?先拜谢了。

解决方案 »

  1.   

    放在list里面的东西只能取,不能修改,在这里你可以用数组啊,把那个list换成数组
    MyStruct [] list=new MyStruct[10];
      

  2.   


            private struct MyStruct
            {
                public int a;
                public string b;
                public string c;
            }
            List<MyStruct> myList = new List<MyStruct>();        private void button2_Click(object sender, EventArgs e)
            {
                for (int i = 0; i < myList.Count; i++)
                {
                    MyStruct s = myList[i];
                    s.c = "adfsa";
                }
            }        private void button1_Click(object sender, EventArgs e)
            {
                for (int i = 0; i < 10; i++)
                {
                    MyStruct ms = new MyStruct();
                    ms.a = 10;
                    ms.b = "adbd0";
                    myList.Add(ms);
                }
            }
      

  3.   

    另外,你的那个MyStruct 中的成员要public 出来 而不是private