C#可以使用哪些数组初始化语法?


当前回答

非空数组

var data0=新int[3]var data1=新int[3]{1,2,3}var data2=新int[]{1,2,3}var data3=新[]{1,2,3}var data4={1,2,3}不可编译。请改用int[]data5={1,2,3}。

空数组

var data6=新int[0]var data7=新int[]{}vardata8=new[]{}和int[]data9=new[]}不可编译。var data10={}不可编译。请改用int[]data11={}。

作为方法的参数

只有可以指定var关键字的表达式才能作为参数传递。

Foo(新int[2])Foo(新int[2]{1,2})Foo(新int[]{1,2})Foo(新[]{1,2})Foo({1,2})不可编译Foo(新int[0])Foo(新int[]{})Foo({})不可编译

其他回答

只是一张纸条

以下阵列:

string[] array = new string[2];
string[] array2 = new string[] { "A", "B" };
string[] array3 = { "A" , "B" };
string[] array4 = new[] { "A", "B" };

将编译为:

string[] array = new string[2];
string[] array2 = new string[] { "A", "B" };
string[] array3 = new string[] { "A", "B" };
string[] array4 = new string[] { "A", "B" };

无LINQ重复:

float[] floats = System.Array.ConvertAll(new float[16], v => 1.0f);

创建自定义类数组的示例

下面是类定义。

public class DummyUser
{
    public string email { get; set; }
    public string language { get; set; }
}

这是初始化数组的方法:

private DummyUser[] arrDummyUser = new DummyUser[]
{
    new DummyUser{
       email = "abc.xyz@email.com",
       language = "English"
    },
    new DummyUser{
       email = "def@email.com",
       language = "Spanish"
    }
};

hi只是为了添加另一种方式:从此页面:https://learn.microsoft.com/it-it/dotnet/api/system.linq.enumerable.range?view=netcore-3.1

如果您想生成0到9的指定范围内的整数序列,可以使用此表单:

using System.Linq
.....
public int[] arrayName = Enumerable.Range(0, 9).ToArray();

您还可以创建动态数组,即,在创建数组之前,您可以先向用户询问数组的大小。

Console.Write("Enter size of array");
int n = Convert.ToInt16(Console.ReadLine());

int[] dynamicSizedArray= new int[n]; // Here we have created an array of size n
Console.WriteLine("Input Elements");
for(int i=0;i<n;i++)
{
     dynamicSizedArray[i] = Convert.ToInt32(Console.ReadLine());
}

Console.WriteLine("Elements of array are :");
foreach (int i in dynamicSizedArray)
{
    Console.WriteLine(i);
}
Console.ReadKey();