例如,我在索引0中的列表:{X = 100,Y = 121.435454} 然后在索引1中我有:{X = 100,Y = 121.433}
现在我想循环将所有坐标转换为INT,所以在最后索引0将如下所示:
{X = 100 , Y = 121}
索引1将是相同的:{X = 100,Y = 121}
在我遍历所有List并将所有坐标数字更改为int之后。 我想过滤并检查是否有X和Y相同的地方将它们删除并只留下其中一个。
例如,如果我将所有List值转换为INT后,我会在索引0 1和2中看到:
{X = 100 , Y = 121}
{X = 100 , Y = 121}
{X = 100 , Y = 121}
然后清理其中两个,只留下一个{X = 100,Y = 121}
我做了:
private static void RemoveSamePoints()
{
for (int i = 0; i < extendedPoints.Count; i++)
{
extendedPoints = extendedPoints[i]
}
}
我如何首先将每个坐标内的List数字从float转换为int?
修改
这就是我现在尝试过的,它的工作方式也正确我想:
private static void RemoveSamePoints()
{
List<Point> PointsInt = new List<Point>();
for (int i = 0; i < extendedPoints.Count; i++)
{
PointsInt.Add(new Point(Convert.ToInt32(extendedPoints[i].X), Convert.ToInt32(extendedPoints[i].Y)));
}
}
答案 0 :(得分:1)
假设变量points
的类型为List<PointF>
,您可以这样做:
points = points
.Select(p => new PointF(Convert.ToInt32(p.X), Convert.ToInt32(p.Y)))
.ToList();
答案 1 :(得分:0)
创建一个新列表,遍历列表并使用Convert.ToInt32转换值。
答案 2 :(得分:0)
以下常用于C#:
Int32 integerValue = Convert.ToInt32(Math.Round(floatValue));