gpt4 book ai didi

c# - 数据结构列表列表 - 我如何使用 linq 访问?

转载 作者:太空狗 更新时间:2023-10-30 00:49:06 26 4
gpt4 key购买 nike

我从一家软件制造商那里得到了一个 c# 程序,它可以访问一个文件并给我一个数据结构列表

List<List<dataPt_struct>> RasterSet = new List<List<dataPt_struct>>();

这给了我一个类似“索引”的列表

RasterSet Count = 100
[0]Count = 400
[1]Count = 411

等等。在那些里面我有另一个包含实际数据结构的“索引”列表

[0]
[X]
[Y]
[Z]
...
[399]
[X]
[Y]
[Z]

所以现在我需要访问列表列表中数据结构的 X、Y、Z 部分。例如,是否可以使用 LINQ 来表示

if (RasterSet[i] >= 0 && Rasterset[i] =< 10)
RasterSet[i].Average(z=> z.Z);

给我一​​个“索引”[0]到[10]中包含的所有Z值的平均值,其中每个索引都有成百上千个二级索引,每个二级索引都有[x][ y][z] 值?

编辑:我拼凑了一个双 foreach,它通过从复杂结构中创建一个普通列表然后在该列表上使用普通 linq 来工作。我仍然很想一次搞定所有事情。谢谢大家的建议

最佳答案

获取总平均值:

var average = RasterSet.SelectMany(x => x).Average(x => x.Z);

要获取索引 0-10 的子列表的平均值,请执行以下操作:

var average = RasterSet.GetRange(0, 10).SelectMany(x => x).Average(x => x.Z);

关于c# - 数据结构列表列表 - 我如何使用 linq 访问?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40654590/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com