检查字符串数组的正确方法不是null
本文关键字:方法 null 字符串 数组 检查 | 更新日期: 2023-09-27 18:00:13
我有一个字符串数组,它总是给出字符串数组长度>0。检查字符串数组是否为null的正确方法是什么。
string[] mystr = new string[0];
...
...
if (..) {
mystr = string[] oldstrArray.Clone();
}
...
...
if (mystr[0].Length != 0) {
//Always enters this loop even if mystr is not assigned in the above if condition
}
尝试以下代码片段:
private static void Main(string[] args)
{
string[] mystr = null;
if (IsNullOrEmpty(mystr))
{
//Do your thing
}
}
static bool IsNullOrEmpty(string[] strarray)
{
return strarray== null || strarray.Length == 0;
}
或者这个(扩展方法)
class MyAwesomeProgram
{
private static void Main(string[] args)
{
string[] mystr = null;
if (mystr.IsNullOrEmpty())
{
//Do what you want
}
}
}
static class Extensions
{
public static bool IsNullOrEmpty(this string[] strarray)
{
return strarray == null || strarray.Length == 0;
}
}
您要求的是数组中第一个字符串的长度,而不是数组本身。您要检查mystr.Length
而不是mystr[0].Length
。
此外,请注意您发布的代码——它应该编译(LINQPad对此非常有用)。你的有语法错误,这可能会阻碍人们帮助你。
string[] mystr = new string[] { "", null, "", "", null };
//Check if the array itself is null which is what your question is truly asking
if (mystr == null)
Console.WriteLine("Array is null");
//Check to see if the array itself is empty/zero-length
if (mystr != null && mystr.Length == 0)
Console.WriteLine("Array contains no elements");
//Check if all elements are null or empty
if (mystr != null && mystr.All(s => string.IsNullOrEmpty(s)))
Console.WriteLine("All elements are either null or empty");
if(mystr[0].Length!=0)
它将为您提供数组中第一个成员的长度。空检查是简单的
如果(mystr==空)
Length属性提供数组的大小。长度可用于检查空数组