I am converting VB6 codes to C# Here I have to convert array of struct into List approach in c# but not able to modify the value in the below sample code getting error as 
"Cannot modify the return value of `System.Collections.Generic.List<test.Program.TagFieldValue>.this[int]`because it is not a variable".

What am I doing wrong.. Is there any other way to do it without converting my type to class?

```
using System;
using System.Collections.Generic;

namespace test
{
    class Program
    {
        private struct TagFieldValue
        {
            private int _ID;
            public int ID { get { return _ID; } set { _ID = value; } }
        }

        private List<TagFieldValue> mFieldValues = new List<TagFieldValue>();
        static void Main(string[] args)
        {
            Program obj = new Program();
            obj.test();
        }

        public void test()
        {
            for (int i = 1; i <= 10; i++)
            {
                TagFieldValue temp = new TagFieldValue();
                temp.ID = i;                
                mFieldValues.Add(temp);                
            }

            for (int i = 0; i <= 9; i++)
            {
                mFieldValues[i].ID = mFieldValues[i].ID + 10;
            }

            for (int i = 0; i <= 9; i++)
            {
                Console.WriteLine(mFieldValues[i].ID);
            }
            Console.ReadLine();
        }
    }
}

```