您可以使用Dictionary<TKey, TValue>
:
var items = new Dictionary<int, string>();
items.Add(1423, "General");
...
var valueOf1423 = items[1423];
var keyOfGeneral = items.FirstOrDefault(x => x.Value == "General").Key;
如果没有值为“General”的项目,上面的示例将引发异常。为了防止这种情况,您可以将 Dictionary 包装在自定义类中并检查条目是否存在并返回您需要的任何内容。
请注意,该值不是唯一的,字典允许您使用不同的键存储相同的值。
包装类可能看起来像这样:
public class Category {
private Dictionary<int, string> items = new Dictionary<int,, string>();
public void Add(int id, string description) {
if (GetId(description <> -1)) {
// Entry with description already exists.
// Handle accordingly to enforce uniqueness if required.
} else {
items.Add(id, description);
}
}
public string GetDescription(int id) {
return items[id];
}
public int GetId(string description) {
var entry = items.FirstOrDefault(x => x.Value == description);
if (entry == null)
return -1;
else
return entry.Key;
}
}