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

初始化集合的语法是什么?

  •  0
  • Inglonias  · 技术社区  · 10 月前

    我有一个基本的C#程序来演示这一点:

    namespace ConsoleApp5
    {
        internal class Program
        {
            static void Main(string[] args)
            {
                List<int> list = [1, 2, 3, 4, 5, 6];
                List<int> list2 = [.. list];
            }
        }
    }
    

    用于初始化的技巧的名称是什么 list2 ?

    3 回复  |  直到 10 月前
        1
  •  2
  •   ipodtouch0218    10 月前

    他们被称为 collection expressions ,在C#12/中引入。净值8:

    集合表达式是一种简洁的语法,在计算时可以分配给许多不同的集合类型。集合表达式包含[和]括号之间的一系列元素

    这个 [.. list] 语法被称为spread元素,它与内联整个列表相同:

    您使用了spread元素 .. 在集合表达式中内联集合值。

        2
  •  0
  •   Folyik    10 月前

    它被称为 Spread element

        3
  •  0
  •   Usman Khalid    10 月前

    这个特性是C#12中新引入的。这是Javascript中一个非常著名的特性,称为spread元素。

    根据 official microsoft documentation ,

    扩散元素。。集合表达式中的e将该表达式中的所有元素相加。参数必须是集合类型。以下示例显示了spread元素的工作原理:

    int[] row0 = [1, 2, 3];
    int[] row1 = [4, 5, 6];
    int[] row2 = [7, 8, 9];
    int[] single = [.. row0, .. row1, .. row2];
    foreach (var element in single)
    {
        Console.Write($"{element}, ");
    }
    // output:
    // 1, 2, 3, 4, 5, 6, 7, 8, 9,