确定数组是否包含全零
Determine if array contains all zeroes
我这样创建以下数组:
array<UInt16>^ temp = gcnew array<UInt16>(1000);
如何确定整个数组是否已用零填充。
我想我可以使用 TrueForAll(T) 但我不确定。
从0初始化一个计数器,然后使用for循环遍历数组,每当找到0时递增计数器,最后将计数器与数组大小进行比较,如果相等,则全为零
这应该可以正常工作(这里我使用了 LINQ):
IEnumerable<int> values = new List<int>(); // Or use any array type instead of List.
... Add your values here ...
var allAreZero = !values.Any(v => v != 0);
P.S。数组 class 继承 IEnumerable
.
这是 foreach
的解决方案:
var isAllZero = true;
foreach (var value in values)
{
if (value != 0)
{
isAllZero = false;
break;
}
}
更新
TrueForAll
和我的 LINQ
代码之间的真正区别是:LINQ
代码使用流畅的(或者也可能是查询)语法,其中 TrueForAll
只是将数组作为参数发送的普通函数。
var allElementsAreZero = temp.All(o => o == 0);
就这么简单。
它会 return 当它找到一个不满足条件的集合时,因此不一定会遍历整个集合:
"The enumeration of source is stopped as soon as the result can be determined."
https://msdn.microsoft.com/en-us/library/bb548541(v=vs.110).aspx
正在阅读C++/CLI specification,已填满
0s,因为您使用 "new-expression" 创建它并且元素类型的默认值为 0。
24.2 CLI array creation
CLI array instances are created by new-expressions containing gcnew (§15.4.6) or …
Elements of CLI arrays created by new-expressions are always initialized to their default value.
我这样创建以下数组:
array<UInt16>^ temp = gcnew array<UInt16>(1000);
如何确定整个数组是否已用零填充。
我想我可以使用 TrueForAll(T) 但我不确定。
从0初始化一个计数器,然后使用for循环遍历数组,每当找到0时递增计数器,最后将计数器与数组大小进行比较,如果相等,则全为零
这应该可以正常工作(这里我使用了 LINQ):
IEnumerable<int> values = new List<int>(); // Or use any array type instead of List.
... Add your values here ...
var allAreZero = !values.Any(v => v != 0);
P.S。数组 class 继承 IEnumerable
.
这是 foreach
的解决方案:
var isAllZero = true;
foreach (var value in values)
{
if (value != 0)
{
isAllZero = false;
break;
}
}
更新
TrueForAll
和我的 LINQ
代码之间的真正区别是:LINQ
代码使用流畅的(或者也可能是查询)语法,其中 TrueForAll
只是将数组作为参数发送的普通函数。
var allElementsAreZero = temp.All(o => o == 0);
就这么简单。
它会 return 当它找到一个不满足条件的集合时,因此不一定会遍历整个集合:
"The enumeration of source is stopped as soon as the result can be determined."
https://msdn.microsoft.com/en-us/library/bb548541(v=vs.110).aspx
正在阅读C++/CLI specification,已填满 0s,因为您使用 "new-expression" 创建它并且元素类型的默认值为 0。
24.2 CLI array creation
CLI array instances are created by new-expressions containing gcnew (§15.4.6) or …
Elements of CLI arrays created by new-expressions are always initialized to their default value.