有条件地检查数组是不是等于特定值[重复]
Posted
技术标签:
【中文标题】有条件地检查数组是不是等于特定值[重复]【英文标题】:Conditional to check if array is equal to a particular value [duplicate]有条件地检查数组是否等于特定值[重复] 【发布时间】:2021-12-16 04:21:51 【问题描述】:我希望这段代码能将“无爱好”写入控制台。但是,没有任何输出。这是为什么呢?
string[] hobbies = new string[0];
if (hobbies == new string[0])
Console.WriteLine("no hobbies");
【问题讨论】:
数组是引用类型,这意味着,即使您创建两个具有相同元素的数组,它们也是两个不同的对象。如果要比较元素,可以使用例如SequenceEquals 如果您只是想检查数组是否为空,请执行if(hobbies.Length == 0)
或使用 Linq if(!hobbies.Any())
【参考方案1】:
您正在比较数组,==
在这种情况下比较 references 而不是值。如果你想比较数组的内容,你可以使用SequenceEqual
:
hobbies.SequenceEqual(new string[0])
【讨论】:
当然,但是为了可读性,我宁愿使用hobbies.Length == 0
【参考方案2】:
可以使用 array.Equal(another_array) 或 array.SequenceEqual(another_array) 比较数组内容。 试试这个:
static void Main(string[] args)
string[] hobbies = new string [0];
if(hobbies.SequenceEqual(new string[0]))
Console.WriteLine("no hobbies");
Console.ReadKey();
【讨论】:
接受的答案已经包含您提供的解决方案。如果您认为答案能更好地回答问题,请使用更多信息编辑您的答案。以上是关于有条件地检查数组是不是等于特定值[重复]的主要内容,如果未能解决你的问题,请参考以下文章
在Python中检查二维数组中的所有元素是不是等于1 [重复]