如何在列表的每个数组中计算与0相等的元素?
我有一个名单List<byte[]> piks。我想在每个byte[]中计算有多少元素与0相等。
我试了几种方法:
from c in piksle_lista_tablic[84]
where (c.Equals(0))
select c或
piksle_lista_tablic[84].Count(n => n == 0)我总是得到错误的Expression cannot contain lambda expressions。
例如:piks[1]是一个包含1156项的数组,我想知道该数组中有多少特定元素。
PS:我可以在手表窗口使用Linq吗?
发布于 2011-10-27 20:19:47
试试这个:
var zero_counts = piks.Select(p => p.Count(c => c == 0));ps1.我可以在调试时使用linq吗?
Visual不支持监视窗口中的lambda表达式。
发布于 2011-10-27 20:21:06
var results = from arr in piks
select arr.Where(b=>b==0).Count()该代码将迭代数组列表,并为每个数组查找等于零的元素,并返回一个包含每个数组计数的IEnumerable。我喜欢的地方比数(选择)更多,但这是一个品味的问题。我怀疑会不会有明显的不同表现
对您来说,ps 1,是的,您可以在调试时使用linq,但这通常是一种痛苦,因为linq语句是一条语句,在方法中对它进行剪切有时会在调试时有所帮助,但我不喜欢为调试器编写代码。
根据您的评论编辑:不,不能在监视窗口中使用Lambda。您可以在“监视”窗口中使用Linq,但只能作为方法调用使用,并且只能使用命名函数。
发布于 2011-10-27 20:30:59
如果要计算全球总数,可以这样做:
piks.SelectMany(p => p).Count(p => p == 0);对于每个数组,您可以这样做:
piks.Select(p => p.Count(p => p == 0));https://stackoverflow.com/questions/7921825
复制相似问题