C# 选择List with Dictionary,在字典后面添加值';s已分配给SelectList
我在下面的代码中有一个-C# 选择List with Dictionary,在字典后面添加值';s已分配给SelectList,c#,asp.net-mvc,C#,Asp.net Mvc,我在下面的代码中有一个- Dictionary<string, string> myDict = new Dictionary<string, string>(); myDict.Add("keyA", "valueA"); myDict.Add("keyB", "valueB"); IEnumerable<SelectListItem> mySelectList = new SelectList(myDict, "key", "value") 试试这样
Dictionary<string, string> myDict = new Dictionary<string, string>();
myDict.Add("keyA", "valueA");
myDict.Add("keyB", "valueB");
IEnumerable<SelectListItem> mySelectList = new SelectList(myDict, "key", "value")
试试这样可怕的东西:
((Dictionary<string, string>)mySelectList.Items).Add("keyC", "valueC");
((字典)mySelectList.Items)。添加(“keyC”、“valueC”);
不过,如果您只是在自己的代码中保留对myDict的引用,而不是滥用它们的属性,那就更好了
注意:这很可能不起作用。我没有尝试过。如果您想向myDict添加项目,这当然是可能的,只要在生成枚举(例如使用
.ToList()
)之前进行更改,任何更改都将反映在任何mySelectList
的枚举中
例如:
Dictionary<string, string> myDict = new Dictionary<string, string>();
myDict.Add("keyA", "valueA");
myDict.Add("keyB", "valueB");
IEnumerable<SelectListItem> mySelectList = new SelectList(myDict, "key", "value");
myDict.Add("keyC", "valueC");
var result = mySelectList.ToList();
// result is now a list containing three items - keyA, keyB and keyC.
myDict.Add("keyD", "valueD");
var result2 = mySelectList.ToList();
// result2 is a list containing four items. result is
// unchanged, containing just the original three.
Dictionary myDict=newdictionary();
myDict.添加(“keyA”、“valueA”);
myDict.添加(“键B”、“值B”);
IEnumerable mySelectList=新选择列表(myDict,“key”,“value”);
myDict.添加(“关键”、“价值”);
var result=mySelectList.ToList();
//结果现在是一个包含三个项目的列表——keyA、keyB和keyC。
myDict.添加(“键控”、“估值”);
var result2=mySelectList.ToList();
//result2是一个包含四项的列表。结果是
//不变,只包含原来的三个。
是的,您可以像以前一样向词典中添加值。但您是否也要将它们添加到mySelectList中?
Dictionary<string, string> myDict = new Dictionary<string, string>();
myDict.Add("keyA", "valueA");
myDict.Add("keyB", "valueB");
IEnumerable<SelectListItem> mySelectList = new SelectList(myDict, "key", "value");
myDict.Add("keyC", "valueC");
var result = mySelectList.ToList();
// result is now a list containing three items - keyA, keyB and keyC.
myDict.Add("keyD", "valueD");
var result2 = mySelectList.ToList();
// result2 is a list containing four items. result is
// unchanged, containing just the original three.