如何将List <pointf>中的值从float转换为int?</pointf>

时间:2014-01-06 16:19:29

标签: c# .net

例如,我在索引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)));
            }
        }

3 个答案:

答案 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));