CVPoint[][] 转 IEnumerable<Point>
时间: 2024-01-01 20:03:51 浏览: 85
可以使用 LINQ 中的 `SelectMany` 方法将 `CVPoint[][]` 转换为 `IEnumerable<Point>`,示例代码如下:
```csharp
using System.Linq;
// 定义 CVPoint 类型
class CVPoint
{
public int X { get; set; }
public int Y { get; set; }
}
// 将 CVPoint[][] 转换为 IEnumerable<Point>
CVPoint[][] cvPoints = new CVPoint[2][]
{
new CVPoint[] { new CVPoint { X = 1, Y = 2 }, new CVPoint { X = 3, Y = 4 } },
new CVPoint[] { new CVPoint { X = 5, Y = 6 }, new CVPoint { X = 7, Y = 8 } }
};
IEnumerable<Point> points = cvPoints.SelectMany(row => row.Select(cvPoint => new Point(cvPoint.X, cvPoint.Y)));
```
上述代码中,`SelectMany` 方法将二维数组 `cvPoints` 中的每个 `CVPoint` 对象转换为 `Point` 对象,并将它们扁平化为一个 `IEnumerable<Point>` 集合。在转换过程中,我们使用了 Lambda 表达式来定义转换规则。
阅读全文