C# 声明空字符串数组
Posted
技术标签:
【中文标题】C# 声明空字符串数组【英文标题】:C# declare empty string array 【发布时间】:2013-05-25 21:57:37 【问题描述】:我需要声明一个空字符串数组,我正在使用此代码
string[] arr = new String[0]();
但我收到“预期方法名称”错误。
怎么了?
【问题讨论】:
为什么需要一个空数组?你想做什么? @MrT。与问题无关。 @James - 也许有更优雅的方式来做他想做的任何事情。 @aquanat - 虽然答案已被接受,但我不知道您的代码或其背后的逻辑,但我谦虚地建议您不要返回空数组而是返回 null 并从调用中检查返回值是否为空的函数。我认为它会更加优雅、可读和高效。 您不想返回 null 的原因是该方法的使用者必须检查 null。例如,该方法的使用者可以将返回的值放在 foreach 中,如果返回一个空数组,则没有问题。但是,如果返回 null,则在迭代返回值之前必须检查是否为 null 【参考方案1】:试试这个
string[] arr = new string[] ;
【讨论】:
谢谢大家...不要问我为什么,但唯一的办法是:string[] arr = new String[0] as string[]; Atish 的方法有效并消除了 Visual Studio 的抱怨,即如果我在 if 语句中分配变量时使用未初始化的变量 其他选项是c# Array.Empty<string>()
【参考方案2】:
你的语法错误:
string[] arr = new string[];
或
string[] arr = new string[0];
【讨论】:
为什么在你的例子中字符串都是大写的而不是大写的? @newStackExchangeInstance,刚刚从问题中“按原样”复制了代码。这两行都编译得很好,尽管我同意遵循一种风格更好。【参考方案3】:如果您使用的是 .NET Framework 4.6 及更高版本,它们有一些您可以使用的新语法:
using System; // To pick up definition of the Array class.
var myArray = Array.Empty<string>();
【讨论】:
好招!它也适用于 IList你可以试试这个
string[] arr = ;
【讨论】:
【参考方案5】:数组的构造函数是不同的。以下是一些制作空字符串数组的方法:
var arr = new string[0];
var arr = new string[];
var arr = Enumerable.Empty<string>().ToArray()
(抱歉,在手机上)
【讨论】:
【参考方案6】:您的语法无效。
string[] arr = new string[5];
这将创建arr
,一个引用的字符串数组,其中该数组的所有元素都是null
。 (因为字符串是引用类型)
此数组包含从arr[0]
到arr[4]
的元素。 new
运算符用于创建数组并将数组元素初始化为其默认值。在这个例子中,所有的数组元素都被初始化为null
。
Single-Dimensional Arrays (C# Programming Guide)
【讨论】:
谢谢大家...不要问我为什么,但唯一的办法是:string[] arr = new String[0] as string[];【参考方案7】:那些卷曲的东西有时很难记住,这就是为什么有优秀的documentation:
// Declare a single-dimensional array
int[] array1 = new int[5];
【讨论】:
无需编辑此答案,因为答案服务于一般目的,而不是每个说的具体问题。它回答了“声明和初始化数组的语法是什么”,并且是我发布的链接的引用。 OP 如果愿意,可以将int
替换为string
。【参考方案8】:
如果你必须创建一个空数组,你可以这样做:
string[] arr = new string[0];
如果您不知道大小,那么您也可以使用List<string>
以及喜欢
var valStrings = new List<string>();
// do stuff...
string[] arrStrings = valStrings.ToArray();
【讨论】:
我很抱歉。我不小心用错误的编辑毁了你的帖子。【参考方案9】:以下应该可以正常工作。
string[] arr = new string[] "";
【讨论】:
这不是一个空数组,因为它包含一个空字符串元素。 arr.Length() 将返回 1。 这可能不是一个空数组,但我发现这个答案为空是安全的。谢谢! 1 起来!以上是关于C# 声明空字符串数组的主要内容,如果未能解决你的问题,请参考以下文章