c# - 如何从 3 个 double 列表中获取 float 组?

标签 c# linq

有一个包含 3 个 double 值 x,y,z 的类

 public struct Point : IEquatable<Point>, IComparable<Point>
 {
        public double _X;
        public double _Y;
        public double _Z;
        public double X { get { return _X; } set { _X = value; } }
        public double Y { get { return _Y; } set { _Y = value; } }
        public double Z { get { return _Z; } set { _Z= value; } }
        public Point(double x, double y)
        {
            _X = x;
            _Y = y;
            _Z = 0;
        }
        public Point(double x, double y, double z)
        {
            _X = x;
            _Y = y;
            _Z = z;
        }
}

在循环中我填充了一个点列表

   AllDataPoints = new Point[100];
   double x,y,z;
   for (int i = 0; i < SOMESOURCE.values; i++)
   {
        x = SOMESOURCE.X;
        y = SOMESOURCE.Y;
        z = SOMESOURCE.value;
        AllDataPoints[i] = new Point(x, y, z);
    }

然后我想将所有 z 值放入一个 float 组中。

如何使用 LINQ 完成此操作?

最佳答案

Inside a loop I fill a List of points

你可以不用循环,像这样:

arrayResult = SOMESOURCE
    .Select(item => new Point(item.X, item.Y, item.value))
    .ToArray();

I want to put in one float array all z values.

LINQ 的 Select 可让您执行此操作:

var allZs = arrayResult.Select(pt => (float)pt.Z).ToArray();

关于c# - 如何从 3 个 double 列表中获取 float 组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24610711/

相关文章:

c# - 如何检查用户是否已在 AdMob for Unity 中完成视频?

linq - XQuery 催生了 LINQ 吗?

c# - 加速 Linq 查询

c# - LINQ-to-SQL 连接中的 DefaultIfEmpty 导致重复

c# - 任务链(等待上一个任务完成)

c# - 手动编写解析器的最佳方法是什么?

c# - Linq-to-SQL 加载 1 :1 Relations in a single query

c#/LINQ - 一段时间内每天、每周和每月的平均查询数

c# - Bindings 中的属性名称不区分大小写?

c# - Expression<Func<T1, T2>> 变量能否可靠地用作字典中的键?