zoukankan      html  css  js  c++  java
  • C# 6.0:新的Dictionary Initializer

    初始化Dictionary不是什么新东西,你可以简单的通过Collection Initializer来初始化一个Dictionary,这是从C#3.0就有的特性。Collection Initializer添加一个参数做key,一个参数作为对应key的value。C#6.0添加了一种在初始化中使用Key/indexer来将value直接映射key和value的能力。

    下面的代码显示了Collection Initializer是怎样初始化Dictionary的。

    Dictionary<int, string> students = new Dictionary<int, string> 
    {
        {1, "Student 1" },
        {2, "Student 2" },
        {3, "Student 3" },
        {4, "Student 4" }
    };
    View Code

    这会定义一个名为students的Dictionary对象,它有一个Key为int类型的students列表,如下图所示:

    在C# 6.0种,使用新的Dictionary Initializer,下面的代码块也会实现同样的功效:

    Dictionary<int, string> students = new Dictionary<int, string> 
    {
        [1] = "Student 1" ,
        [2] = "Student 2",
        [3] = "Student 3",
        [4] = "Student 4",
    };
    View Code

    上面的代码返回同样的结果,不同的是它们的赋值方法。在C#6.0中,看起来我们是通过indexer来获得它们。而这使代码变得更好理解。

    现在,如果你想要给collection中添加新元素的话你可以使用下面的方法。

    students[5] = "Student 5";
    students[6] = "Student 6";

    上面的代码会在dictionary中添加两个新的元素。

  • 相关阅读:
    LeetCode 516. Longest Palindromic Subsequence
    LeetCode 432. All O`one Data Structure
    LeetCode 450. Delete Node in a BST
    LeetCode 460. LFU Cache
    LeetCode 341. Flatten Nested List Iterator
    LeetCode 381. Insert Delete GetRandom O(1)
    LeetCode 380. Insert Delete GetRandom O(1)
    LintCode Coins in a Line III
    LintCode Coins in a Line II
    LintCode Coins in a Line
  • 原文地址:https://www.cnblogs.com/yuwen/p/4173492.html
Copyright © 2011-2022 走看看