我正在尝试从列表中获取变量的名称,该变量代表词典的值,以便我可以填写组合框。到目前为止,我已尝试使用 nameof
方法,但我无法获得名称。
在我的示例中,我想用{{填充组合框1}},param1
,param2
const变量在另一个类常量。
param3
包含常量的字典
public const string param1 = "a";
public const string param2 = "b";
public const string param3 = "c";
public const string d = "d";
public const string e = "e";
public const string f = "f";
麻烦的 foreach
public static Dictionary<string, List<string>> formIdDict = new Dictionary<string, List<string>>
{
{singleParamFo,new List<string> {param1,param2,param3 } },
{PIDFo,new List<string> {d,e,f } }
};
我应该在foreach中指定什么类型,因为我不能使用像
这样的东西public SingleParamForm()
{
InitializeComponent();
foreach (var t in Constants.formIdDict[Constants.singleParamFo])
singleParamCombo.Items.Add(nameof(t));
}
答案 0 :(得分:0)
不是使用List<string>
作为词典的TValue,而是使用名称和值创建一个类,或者使用名称为item1的List<Tuple<<string,string>>
,将值作为item1。
public static IDictionary<string, List<Tuple<string,string>>> formIdDict =
new Dictionary<string, List<Tuple<string, string>>>
{
{singleParamFo, new List<Tuple<string,string>>
{
new Tuple<string,string>(nameof(param1), param1) //...
}
}
foreach (var t2 in Constants.formIdDict[Constants.singleParamFo])
singleParamCombo.Item.Add(t2.Item1);
然后将Tuple重构为具有有意义名称的类