Please consider the following code:
public class Program {
    public struct A 
    {
        public int Prop {get;set;}
    }
    public static void Main()
    {
        var obj = new A();
        obj.Prop = 10;
        var list = new List<A>(){obj};
        foreach(var l in list) {
            l.Prop = 20; //here I'm getting compile time error "Cannot modify members of 'l' because it is a 'foreach iteration variable'"
        }
    }
}
So my question is: why struct properties cannot be assigned while iterating over a list of structs? Please note that even when iterating with simple for like this:
for (int i=0; i<list.Count(); ++i)
    list[i].Prop  = 20;
I'm still getting compile time error...