真正的用例是什么.数组上的 Any()

  • 本文关键字:Any 数组 是什么 linq
  • 更新时间 :
  • 英文 :


显然,我似乎错过了一些非常知名和常见的东西,但我不明白为什么空。对数组和列表的 any() 调用结果不同。

正如我知道当我打电话.Any() 它在语义上等同于问:"这个盒子包含任何项目吗?所以当我写这样的东西时:

List<int> list= new List<int>();
WriteLine(list.Any());//returns false

list.Add(1);
WriteLine(list.Any());//returns true

在第一种情况下,它预期返回 false,因为添加项目时列表为空且为 true。

更进一步,如果我尝试使用数组代替,并且这个数组将只是初始化但为空(没有任何项目)。Any() 调用将返回 true:

int[] arr = new int[2];
WriteLine(arr.Any());//returns true despite in has no items

那么称空有什么意义.数组上的 any() 检查它内部是否有任何项目,如果它总是返回 true?我应该避免使用.任何()用于这种目的?

空的真正用例是什么.对阵列有任何调用吗?

创建数组时,所有元素都使用默认值进行初始化。所以,int[] arr = new int[2]实际上等于int[] arr = new int[2] { 0, 0 }。这就是为什么.Any()返回true.

根据您的代码示例,初始化数组上的 Any() 方法没有有意义的用例。

但是,正如我在对您的问题的评论中提到的,如果您正在调用返回数组的方法,那么您可以对返回的数组执行 Any() 检查以确定它是否有任何元素。

相关内容

最新更新