首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >计算List<Array>的每个数组中的元素

计算List<Array>的每个数组中的元素
EN

Stack Overflow用户
提问于 2011-10-27 20:17:30
回答 4查看 2.4K关注 0票数 2

如何在列表的每个数组中计算与0相等的元素?

我有一个名单List<byte[]> piks。我想在每个byte[]中计算有多少元素与0相等。

我试了几种方法:

代码语言:javascript
运行
复制
from c in piksle_lista_tablic[84] 
where (c.Equals(0)) 
select c

代码语言:javascript
运行
复制
piksle_lista_tablic[84].Count(n => n == 0)

我总是得到错误的Expression cannot contain lambda expressions

例如:piks[1]是一个包含1156项的数组,我想知道该数组中有多少特定元素。

PS:我可以在手表窗口使用Linq吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-10-27 20:19:47

试试这个:

代码语言:javascript
运行
复制
var zero_counts = piks.Select(p => p.Count(c => c == 0));

ps1.我可以在调试时使用linq吗?

Visual不支持监视窗口中的lambda表达式。

票数 4
EN

Stack Overflow用户

发布于 2011-10-27 20:21:06

代码语言:javascript
运行
复制
var results = from arr in piks
              select arr.Where(b=>b==0).Count()

该代码将迭代数组列表,并为每个数组查找等于零的元素,并返回一个包含每个数组计数的IEnumerable。我喜欢的地方比数(选择)更多,但这是一个品味的问题。我怀疑会不会有明显的不同表现

对您来说,ps 1,是的,您可以在调试时使用linq,但这通常是一种痛苦,因为linq语句是一条语句,在方法中对它进行剪切有时会在调试时有所帮助,但我不喜欢为调试器编写代码。

根据您的评论编辑:不,不能在监视窗口中使用Lambda。您可以在“监视”窗口中使用Linq,但只能作为方法调用使用,并且只能使用命名函数。

票数 5
EN

Stack Overflow用户

发布于 2011-10-27 20:30:59

如果要计算全球总数,可以这样做:

代码语言:javascript
运行
复制
piks.SelectMany(p => p).Count(p => p == 0);

对于每个数组,您可以这样做:

代码语言:javascript
运行
复制
piks.Select(p => p.Count(p => p == 0));
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7921825

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档