是否可以使用LINQ将包含坐标元组(x,y)的双精度平面数组(即[x0,y0,...,xN,yN])转换为包含相同坐标的长度的一半的数组.Point-class,即[p0,...,pN]?
最好是.NET 3.5,但也对4.0感兴趣.
你可以使用.BatchJon Skeet的morelinq:
IEnumerable<Point> points = coordinates.Batch(2,pair => new Point(pair.ElementAt(0), pair.ElementAt(1)));
Run Code Online (Sandbox Code Playgroud)
老实说,最简单的解决方案可能是使用一种方法(这里有ints):
public IEnumerable<Point> GetPoints(int[] coordinates)
{
for (int i = 0; i < coordinates.Length; i += 2)
{
yield return new Point(coordinates[i], coordinates[i + 1]);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
306 次 |
| 最近记录: |