微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

是否可以根据C#中键/值对的键具有值类型?

让我举一个简单的例子来更好地理解问题

图书馆拥有:

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>);

我可以修改库以使值列表为Enum但是,我希望客户端根据键自动建议使用过滤器的值.

注意:
    1.我不希望Class(Model)具有属性作为相应的类型,因为库中有很多可用的键,客户端会选择少量并提供值.
    2.我不能单独将值作为List< Values>因为某些情况与具有不同键的值具有相同的描述.例如:“是/否值将与不同的键相同”

有什么建议?提前致谢..

解决方法

您可以将字典声明为:

var dictionary = new Dictionary<Keys,int>();

然后使用一个方法将其封装在您自己的自定义类中,该方法使用键的Keys值来使用相应的枚举来解释值.

这里的整个问题看起来像代码味道.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐