【发布时间】:2017-11-21 09:30:24
【问题描述】:
我有字典,键是一个 int 数组,值是一个字符串。如何通过检查 int 是否包含在键数组中来获取值?
public static Dictionary<int[], string> MyDic = new Dictionary<int[], string>
{
{new int[]{2,25},"firstValue"},
{new int[]{3,91,315,322},"secondValue"}
};
我有:
int number=91;
string value=?;
我需要这个值会得到"secondValue"
【问题讨论】:
-
你能遇到一个键数组包含与不同键数组相同的数字的情况吗? (但并非所有值都相同)?例如,
91可以作为第一个和第二个值的键的一部分吗? -
老实说,这似乎不是一个很好的字典用法。感觉它作为一个项目列表会更好,其中每个项目都包含一个整数集合和一个名称。除了其他任何东西,这将允许您以名称的形式表达意图。
-
Gilad Green - 这不可能发生
-
使用像
int[]这样的引用类型作为字典的键不会像你期望的那样工作,除非你通过重载.Equals 和GetHashCode 来提供等价。比较var x = new [] {1, 2, 3};和var y = new [] {1, 2, 3};的HashCodes,你会发现问题在这里。
标签: c# arrays dictionary