选择List with Dictionary,将值添加到Dictionary后面';s分配给SelectList

本文关键字:Dictionary 分配 SelectList 后面 with List 添加 选择 | 更新日期: 2023-09-27 18:21:56

我有以下代码-

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添加值。这可能吗?如果是,那么怎么做?我想做一些类似的事情

mySelectList.myDict.Add("keyC", "valueC");

选择List with Dictionary,将值添加到Dictionary后面';s分配给SelectList

如果您想向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<string, string>)mySelectList.Items).Add("keyC", "valueC");

不过,如果你只是在自己的代码中保留对myDict的引用,而不是滥用它们的属性,那会更好。

注意:这很可能不起作用。我还没试过。