举个简单的例子来更好的理解问题
图书馆拥有:
enum Keys
{
[Description("Color select")]
ColorSelection,
[Description("Day select")]
DaySelection,
[Description("Gender select")]
GenderSelection
}
enum Color
{
[Description("White color")]
White,
[Description("Black color")]
Black,
[Description("Brown color")]
Brown
}
enum Day
{
[Description("Monday")]
Monday,
[Description("Tueday")]
Tuesday,
[Description("Wednesday")]
Wednesday
}
enum Gender
{
[Description("Male gender")]
Male,
[Description("Female gender")]
Female
}
我想要这样的客户:
Dictionary<Keys, ??> values = new Dictionary<Keys, ??>();
values.Add(Keys.ColorSelection, <Auto suggest color>);
values.Add(Keys.DaySelection, <Auto suggest day>);
我可以修改库以包含 values
的列表作为Enum
但是,我希望客户端使用基于键的过滤器自动建议值。
注意:
1. 我不希望具有属性的类(模型)作为各自的类型,因为库中有很多键可用,客户端会选择少数并提供值。
2. 我不能单独拥有值 List<Values>
因为某些情况下会有相同的 description
作为具有不同键的值.. 例如:“是/否值将与不同的键相同”
有什么建议吗?提前致谢..
最佳答案
您可以将字典声明为:
var dictionary = new Dictionary<Keys, int>();
然后使用一个方法将其封装在您自己的自定义类中,该方法使用键的 Keys 值来使用相应的枚举解释值。
虽然这里的整个问题看起来像是代码味道。
关于c# - 是否可以在 C# 中使用基于键/值对的键的值类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45759139/