我应该在c#中使用Enum类还是Lookup

Jac*_*ner 1 c# enums

这是我的最终目标:我希望能够根据程序中注册的任何整数输出工具名称.例如,如果程序找到整数1001,1002和1003,则程序将告诉用户找到工具1,工具2和工具3.

我已经使用一个简单的枚举类来实现这一点,其中所有"工具"都被编号并对应于正确的整数.我甚至可以输出枚举作为名称,虽然我想输出一个字符串,最好是一个可以轻松编辑的字符串,而不必过多地更改整个程序.就像我现在可以将它全部编程为工具1,工具3和工具7一样好,然后返回并在我实际知道我正在使用的工具时更改字符串.

我也已经尝试将DescriptionAttribute与此枚举一起使用,但即使已经有几个问题的帮助,我也无法弄清楚如何通过整数查找枚举,然后输出该枚举的描述.我可以做任何一个,或者两个,但不是两个.

所以这让我想知道除了使用Enum类之外是否有更好的方法可以处理所有这些,我听说它在c#中没用.我只是想知道关于如何使用枚举类或c#中的其他方法来实现此目的的任何建议.

如果我需要分享我已经拥有的工作代码,请告诉我.谢谢!

eva*_*nal 7

我建议使用具有一些属性的工具类;

public class Tool
{
    public string Name { get; set; }
    public string Description { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

然后在处理这些的代码中我会使用a Dictionary<int, Tool>.然后,如果您想要工具1001的描述,您只需:

  Console.WriteLine(myTools[1001].Description);
Run Code Online (Sandbox Code Playgroud)

当然你可以使用a,Dictionary<int, string>但你可能会在稍后发现,你会想要更多与该工具相关的数据,因此创建一个类更有意义.