所以,我认为这个很简单。
这是我的代码:
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# 之前从未见过这个问题。任何人都愿意解释为什么会发生这种情况以及我应该如何解决这个问题?
谢谢!