CJ7*_*CJ7 2 c# arrays collections tuples data-structures
我想在C#中用硬编码信息的方法如下:
1423, General
5298, Chiro
2093, Physio
9685, Dental
3029, Optics
Run Code Online (Sandbox Code Playgroud)
我想再将这些数据引用如下:
"The description for category 1423 is " & MyData.GetDescription[1423]
"The id number for General is " & MyData.GetIdNumber("General")
Run Code Online (Sandbox Code Playgroud)
在C#中执行此操作的最佳方法是什么?
好吧你可以使用Tuple<int, string>- 但我建议创建一个类来存储这两个值:
public sealed class Category
{
private readonly int id;
public int Id { get { return id; } }
private readonly string description;
public string Description { get { return description; } }
public Category(int id, string description)
{
this.id = id;
this.description = description;
}
// Possibly override Equals etc
}
Run Code Online (Sandbox Code Playgroud)
然后,为了查找目的,你可以有一个Dictionary<string, Category>用于描述查找和一个Dictionary<int, Category>用于ID查找 - 或者如果你确信类别的数量会保持很小,你可以使用一个List<Category>.
具有高于仅使用此命名类型的好处Tuple或简单的Dictionary<string, int>和Dictionary<int, string>有:
Category任何其他逻辑上只是a int和a的数据类型stringId和Description比性能Item1和Item2从Tuple<,>.