所以,這是一個非常簡單的,我認爲。塗改對象是影響對象的早期版本在foreach循環
這裏是我的代碼:
Dictionary<int, IEnumerable<SelectListItem>> fileTypeListDict = new Dictionary<int, IEnumerable<SelectListItem>>();
foreach (PresentationFile pf in speakerAssignment.FKPresentation.PresentationFiles)
{
IEnumerable<SelectListItem> fileTypes = Enum.GetValues(typeof(PresentationFileType))
.Cast<PresentationFileType>().Select(x => new SelectListItem
{
Text = x.ToString(),
Value = Convert.ToString((int)x),
Selected = pf.Type == (int)x
});
fileTypeListDict.Add(pf.ID, fileTypes);
}
正在發生的事情是,在年底的詞典將擁有所有正確的鍵,但所有值將被設置爲最後的迭代過程中創建的fileTypes
列表的循環。我確信這與用作參考的對象有關,但在使用C#的時候並沒有看到過這個問題。任何人都在意解釋爲什麼會發生這種情況,我應該如何解決這個問題?
謝謝!
我欣賞的快速和全面的解釋。祝你有美好的一天! – PFranchise