我有一个IEnumerable<Point>,我想将其转换为IEnumerable<float>.
我可以在单个Linq语句中执行此操作吗?
IEnumerable<float> ConvertToPoints(IEnumerable<Point> points)
{
List<float> floats = new List<float>();
foreach(var point in points)
{
floats.Add(point.X);
floats.Add(point.Y);
}
return floats;
}
Run Code Online (Sandbox Code Playgroud)
Mar*_*ers 10
是的,您可以使用SelectMany:
return points.SelectMany(point => new float[] { point.X, point.Y });
Run Code Online (Sandbox Code Playgroud)
另一种不需要LINQ的方法是使用迭代器块:
IEnumerable<float> getPoints(IEnumerable<Point> points)
{
foreach (Point point in points)
{
yield return point.X;
yield return point.Y;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
920 次 |
| 最近记录: |