當我構建以下代碼時,出現錯誤Cannot modify members of 'pd' because it is a 'foreach iteration variable'
。如何在LINQ中重寫C#foreach
foreach (var w in tt.Weeks)
foreach (var d in w.Days)
foreach (var pd in d.Periods)
if (pd.Type == TimetablePeriod.Types.Registration) pd.ClassId = clsId;
我明白爲什麼會出現這個錯誤,但我試圖想出一個很好的方法來重寫代碼。我可以使用嵌套for
循環,但有沒有一個很好的LINQ解決方案?
(如果現在還不清楚,我正在嘗試設置各個時期的ClassId
所有周的所有天clsId
,無論在PeriodType
是TimetablePeriod.Types.Registration
。)
'pd'是一個可變結構嗎?用這個代碼應該編譯一個類。 – CodesInChaos
這是一個結構,但ClassId有一個公共setter,所以肯定會沒事的? – James
你需要使用'for'。或者用一個類替換你的結構。 – CodesInChaos