【问题标题】:Is it possible to list all array sizes with list functions (without looping)?是否可以使用列表函数(不循环)列出所有数组大小?
【发布时间】:2016-04-20 11:25:20
【问题描述】:

我有一个类型为float[] 的列表。 我永远不知道浮点数组的大小有多大,但我需要知道所有数组加在一起的大小。

例子:

List<float[]> f = new List<float[]>();

f.Add(new float[3] { 1f, 5f, 1f });
f.Add(new float[5] { 1f, 5f, 1f, 1f,2f });

两者加起来应该是 32 字节,不是吗? 但是我如何在不循环的情况下计算它?我可以用 lambda 或 linq 来做吗?

另一个问题: 是否也可以合并两个元素?

编辑:我的意思是没有for/foreach while

【问题讨论】:

  • 你认为LINQ不需要循环吗?你的意思是这样的:float size = f.Sum(arr =&gt; arr.Sum()) // 17
  • 您必须遍历列表,但如果您想要数组长度的总和f.Sum(a=&gt;a.Length),则不必遍历数组
  • 是的,正在寻找类似的东西。我知道它正在循环播放。我想说的只是“for/foreach-loops”。

标签: c# arrays list size byte


【解决方案1】:
var size = f.Sum(a => a.Length);
var merged = f.SelectMany(a => a).ToList();

【讨论】:

    猜你喜欢
    • 2021-12-20
    • 2014-09-17
    • 2017-01-10
    • 1970-01-01
    • 1970-01-01
    • 2022-01-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多