Ant*_*ram 716
这些是简单数组的当前声明和初始化方法.
string[] array = new string[2]; // creates array of length 2, default values
string[] array = new string[] { "A", "B" }; // creates populated array of length 2
string[] array = { "A" , "B" }; // creates populated array of length 2
string[] array = new[] { "A", "B" }; // created populated array of length 2
Run Code Online (Sandbox Code Playgroud)
请注意,存在其他获取数组的技术,例如Linq ToArray()扩展IEnumerable<T>.
另请注意,在上面的声明中,前两个可以替换string[]左边的var(C#3+),因为右边的信息足以推断出正确的类型.必须按显示的方式编写第三行,因为单独的数组初始化语法不足以满足编译器的要求.第四个也可以使用推理.因此,如果你是整个简洁的事情,上面的内容可以写成
var array = new string[2]; // creates array of length 2, default values
var array = new string[] { "A", "B" }; // creates populated array of length 2
string[] array = { "A" , "B" }; // creates populated array of length 2
var array = new[] { "A", "B" }; // created populated array of length 2
Run Code Online (Sandbox Code Playgroud)
Eri*_*ert 430
C#中表达式的数组创建语法是:
new int[3]
new int[3] { 10, 20, 30 }
new int[] { 10, 20, 30 }
new[] { 10, 20, 30 }
Run Code Online (Sandbox Code Playgroud)
在第一个中,大小可以是任何非负整数值,并且数组元素被初始化为默认值.
在第二个中,大小必须是常量,并且给定的元素数必须匹配.必须存在从给定元素到给定数组元素类型的隐式转换.
在第三个元素中,元素必须可以隐式转换为元素类型,并且大小由给定元素的数量确定.
在第四个中,通过计算具有类型的所有给定元素的最佳类型(如果存在)来推断数组元素的类型.所有元素必须可以隐式转换为该类型.大小由给定的元素数量确定.此语法是在C#3.0中引入的.
还有一种语法只能在声明中使用:
int[] x = { 10, 20, 30 };
Run Code Online (Sandbox Code Playgroud)
元素必须可隐式转换为元素类型.大小由给定的元素数量确定.
没有一体化指南
我将向您介绍C#4.0规范,第7.6.10.4节"阵列创建表达式".
kis*_*pit 106
var data0 = new int[3]
var data1 = new int[3] { 1, 2, 3 }
var data2 = new int[] { 1, 2, 3 }
var data3 = new[] { 1, 2, 3 }
var data4 = { 1, 2, 3 }是不可编辑的.请int[] data5 = { 1, 2, 3 }改用.
var data6 = new int[0]var data7 = new int[] { }var data8 = new [] { } 并且int[] data9 = new [] { }不可编译.
var data10 = { }是不可编辑的.请int[] data11 = { } 改用.
只有可以使用var关键字指定的表达式才能作为参数传递.
Foo(new int[2])Foo(new int[2] { 1, 2 })Foo(new int[] { 1, 2 })Foo(new[] { 1, 2 })Foo({ 1, 2 }) 是不可编辑的 Foo(new int[0])Foo(new int[] { })Foo({}) 是不可编辑的Ato*_*osk 49
Enumerable.Repeat(String.Empty, count).ToArray()
Run Code Online (Sandbox Code Playgroud)
将创建重复'count'次的空字符串数组.如果您想使用相同但特殊的默认元素值初始化数组.注意引用类型,所有元素都将引用相同的对象.
小智 18
var contacts = new[]
{
new
{
Name = " Eugene Zabokritski",
PhoneNumbers = new[] { "206-555-0108", "425-555-0001" }
},
new
{
Name = " Hanying Feng",
PhoneNumbers = new[] { "650-555-0199" }
}
};
Run Code Online (Sandbox Code Playgroud)
Shi*_*mmy 16
如果要初始化预先初始化的相等(非元素null或非default元素)元素的固定数组,请使用:
var array = Enumerable.Repeat(string.Empty, 37).ToArray();
Run Code Online (Sandbox Code Playgroud)
另请参加本次讨论.
Amo*_*mol 12
下面是类定义.
public class DummyUser
{
public string email { get; set; }
public string language { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
这是您初始化数组的方法:
private DummyUser[] arrDummyUser = new DummyUser[]
{
new DummyUser{
email = "abc.xyz@email.com",
language = "English"
},
new DummyUser{
email = "def@email.com",
language = "Spanish"
}
};
Run Code Online (Sandbox Code Playgroud)
You*_*oub 11
只是一个注释
以下数组:
string[] array = new string[2];
string[] array2 = new string[] { "A", "B" };
string[] array3 = { "A" , "B" };
string[] array4 = new[] { "A", "B" };
Run Code Online (Sandbox Code Playgroud)
将被编译为:
string[] array = new string[2];
string[] array2 = new string[] { "A", "B" };
string[] array3 = new string[] { "A", "B" };
string[] array4 = new string[] { "A", "B" };
Run Code Online (Sandbox Code Playgroud)
小智 7
没有LINQ重复:
float[] floats = System.Array.ConvertAll(new float[16], v => 1.0f);
Run Code Online (Sandbox Code Playgroud)
小智 6
int[] array = new int[4];
array[0] = 10;
array[1] = 20;
array[2] = 30;
Run Code Online (Sandbox Code Playgroud)
要么
string[] week = new string[] {"Sunday","Monday","Tuesday"};
Run Code Online (Sandbox Code Playgroud)
要么
string[] array = { "Sunday" , "Monday" };
Run Code Online (Sandbox Code Playgroud)
并在多维数组中
Dim i, j As Integer
Dim strArr(1, 2) As String
strArr(0, 0) = "First (0,0)"
strArr(0, 1) = "Second (0,1)"
strArr(1, 0) = "Third (1,0)"
strArr(1, 1) = "Fourth (1,1)"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
646882 次 |
| 最近记录: |