c# XYZ pts = new XYZ(); L_CenterPoint.Add(pts); 添加18组数据 求每两个数据相加求平均值 再输出到一个新的LIST里
时间: 2024-09-28 15:13:59 浏览: 32
pts.rar_pts_pts.rar_维纳_维纳斯点云
在C#中,首先你需要创建一个名为XYZ的数据结构或者类,并假设它有一个公共的double类型的成员用于存储数值。然后你可以按照以下步骤操作:
1. 创建一个XYZ类型的集合(List<XYZ>),例如`List<XYZ> points = new List<XYZ>();`,并将18组数据添加进去,就像你示例的那样。
```csharp
for (int i = 0; i < 18; i++)
{
XYZ pts = new XYZ();
// 初始化pts的数据...
points.Add(pts);
}
```
2. 然后,你需要遍历这个points列表,对每一对相邻的数据求和并计算平均值。这可以使用嵌套循环,或者使用LINQ的Zip方法来简化。这里是一个例子,先计算所有点对的总和,然后除以17(因为有18组数据,但只考虑17对)得到平均值:
```csharp
List<double> averages = new List<double>();
for (int i = 0; i < points.Count - 1; i++) // 从0到points.Count-2,跳过最后一个元素,因为它没有前一个元素进行比较
{
double sum = points[i].Value + points[i + 1].Value;
double average = sum / 2; // 因为每个点都和其他一个点做加法,所以直接除以2
averages.Add(average);
}
```
如果你的XYZ类已经包含了相加的成员方法,那么可以直接使用`average = points[i].Sum(points[i + 1]) / 2;`
3. 最后,将计算出的平均值添加到另一个列表`L_CenterPoint`中,如果这个列表是用来存放结果的:
```csharp
foreach (double avg in averages)
{
L_CenterPoint.Add(avg);
}
```
阅读全文