代码之家  ›  专栏  ›  技术社区  ›  user215675

C提供自定义密钥

  •  0
  • user215675  · 技术社区  · 15 年前

    如何提供自定义键作为字典键?

    当我执行代码时:我收到

        int[] Keys={5567,51522,35533};
        string[] values={"one","two","three"};
        var dic = values.ToDictionary(key=>Keys.ToArray());
        foreach (KeyValuePair<int, string> kv in dic)
        {
            Console.WriteLine("Key={0},value={1}", kv.Key, kv.Value);
        }
    

    错误: can not convery KeyValuePair<int[],string> to KeyValuePair<int,string>

    1 回复  |  直到 15 年前
        1
  •  2
  •   Jon Skeet    15 年前

    目前,您正在为字典中的每个元素使用整个键数组。你想要类似的东西:

    var dic = Enumerable.Range(0, keys.Length)
                        .ToDictionary(i => keys[i],
                                      i => values[i]);
    

    (或使用 Zip 方法从.NET 4.0将两个集合压缩在一起,然后从中形成字典。)