C#可以使用哪些数组初始化语法?
当前回答
创建自定义类数组的示例
下面是类定义。
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"
}
};
其他回答
对于以下类别:
public class Page
{
private string data;
public Page()
{
}
public Page(string data)
{
this.Data = data;
}
public string Data
{
get
{
return this.data;
}
set
{
this.data = value;
}
}
}
您可以按如下方式初始化上述对象的数组。
Pages = new Page[] { new Page("a string") };
希望这有帮助。
Enumerable.Repeat(String.Empty, count).ToArray()
将创建重复“count”次的空字符串数组。若您希望使用相同但特殊的默认元素值初始化数组。注意引用类型,所有元素都将引用同一对象。
创建和初始化对象数组的另一种方法。这与上面@Amol发布的示例类似,只是这一个使用了构造函数。一点点多态性洒了进来,我无法抗拒。
IUser[] userArray = new IUser[]
{
new DummyUser("abc@cde.edu", "Gibberish"),
new SmartyUser("pga@lna.it", "Italian", "Engineer")
};
上下文类:
interface IUser
{
string EMail { get; } // immutable, so get only an no set
string Language { get; }
}
public class DummyUser : IUser
{
public DummyUser(string email, string language)
{
m_email = email;
m_language = language;
}
private string m_email;
public string EMail
{
get { return m_email; }
}
private string m_language;
public string Language
{
get { return m_language; }
}
}
public class SmartyUser : IUser
{
public SmartyUser(string email, string language, string occupation)
{
m_email = email;
m_language = language;
m_occupation = occupation;
}
private string m_email;
public string EMail
{
get { return m_email; }
}
private string m_language;
public string Language
{
get { return m_language; }
}
private string m_occupation;
}
非空数组
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({})不可编译
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();
推荐文章
- 实体框架核心:在上一个操作完成之前,在此上下文中开始的第二个操作
- 如何为构造函数定制Visual Studio的私有字段生成快捷方式?
- 如何使用JSON确保字符串是有效的JSON。网
- 使用C返回一个数组
- AppSettings从.config文件中获取值
- 通过HttpClient向REST API发布一个空体
- 如何检查IEnumerable是否为空或空?
- 自动化invokerrequired代码模式
- 在c#代码中设置WPF文本框的背景颜色
- 在c#中,什么是单子?
- c#和Java中的泛型有什么不同?和模板在c++ ?
- 向对象数组添加属性
- c#线程安全快速(est)计数器
- 如何将此foreach代码转换为Parallel.ForEach?
- 如何分裂()一个分隔字符串到一个列表<字符串>