C#Point3DCollection按最小或最大坐标选择点
我收集了数百个点,比如 点3D(2,5,8), 点3D(8,6,9), 点3D(5,8,12)。。。 我需要得到X的最小值和最大值的坐标。我知道如何找到最小值(使用LINQ Min),但我不知道如何找到最小值并得到Y和Z。C#Point3DCollection按最小或最大坐标选择点,c#,linq,3d,coordinates,point,C#,Linq,3d,Coordinates,Point,我收集了数百个点,比如 点3D(2,5,8), 点3D(8,6,9), 点3D(5,8,12)。。。 我需要得到X的最小值和最大值的坐标。我知道如何找到最小值(使用LINQ Min),但我不知道如何找到最小值并得到Y和Z。 您能帮助我吗?假设您的Point3DCollection是Point3D类对象的列表。您的Point3D类如下所示 public class Point3D { public int X; public int Y; public int Z; public
您能帮助我吗?假设您的
Point3DCollection
是Point3D
类对象的列表。您的Point3D
类如下所示
public class Point3D
{
public int X;
public int Y;
public int Z;
public Point3D(int x, int y, int z)
{
X = x;
Y = y;
Z = z;
}
}
您所需的Linq
将
对于最低X
Point3D p = Point3DCollection.OrderBy(x => x.X).FirstOrDefault();
对于最高x
if(Point3DCollection.Count > 0)
Point3D p = Point3DCollection.OrderBy(x => x.X).Last();
您最好先检查Point3DCollection
的空值
假设您的
Point3DCollection
是Point3D
类对象的列表。您的Point3D
类如下所示
public class Point3D
{
public int X;
public int Y;
public int Z;
public Point3D(int x, int y, int z)
{
X = x;
Y = y;
Z = z;
}
}
您所需的Linq
将
对于最低X
Point3D p = Point3DCollection.OrderBy(x => x.X).FirstOrDefault();
对于最高x
if(Point3DCollection.Count > 0)
Point3D p = Point3DCollection.OrderBy(x => x.X).Last();
您最好先检查Point3DCollection
的空值
您可以使用
X
上的OrderBy
对X
的集合进行从低到高的排序。现在,First应该给出最小值,Last应该给出最大值。使用这种方法,您还可以选择top(2或3或…)和Last(2或3.或…)。您可以使用X
上的OrderBy
对X
的集合进行从低到高的排序。现在,First应该给出最小值,Last应该给出最大值。使用这种方法,您还可以选择top(2或3或…)和Last(2或3或…)。