【发布时间】:2015-08-09 19:07:48
【问题描述】:
我正在尝试编写一个程序,我想在其中初始化一个数组的 4 个起始值,而其他 16 个将从控制台手动输入。
为此,我编写了以下代码:
int[] intArray = new int[20] { 20, 22, 23, 0 };
但我得到了以下异常:“需要一个 '20' 的数组初始值设定项”
我知道可以通过这种语法来完成:
int[] intArray = new int[20];
intArray[0] = 20;
intArray[1] = 22;
intArray[2] = 23;
intArray[3] = 0;
我想知道这是否可以在一行中实现。
【问题讨论】:
-
“但我想知道如何在一行中做到这一点” - 为什么需要?基本上没有特别简单的方法可以做到这一点。您可以通过多种方式 使用 LINQ 完成此操作,但没有什么特别简单。
new[] { 20, 22, 23, 0 }.Concat(Enumerable.Repeat(0, 16)).ToArray()会这样做,例如... -
我假设 一行 你的意思是一个陈述?因为你可以将
int[] intArray = new int[20]; intArray[0] = 20; intArray[1] = 22; intArray[2] = 23; intArray[3] = 0;做为一行,但它是相同数量的语句... -
是的,它的工作原理,但请你让我怎么做?它的工作@ jon Skeet
标签: c# arrays .net initialization