转换列表<>或列表<List<>>

Convert List<> or List<List<>>

我需要将一个 class 类型的点(此类型来自第三方 api)转换为我自己制作的另一种 class 类型的点。

以下作品:

MyPointClass myPnt = new MyPointClass(ApiPointClass apiPnt);


public class MyPointClass
{
    public double X { get; private set; } = 0;
    public double Y { get; private set; } = 0;
    public double Z { get; private set; } = 0;

    public MyPointClass(ApiPointClass apiPnt)
    {
         //X, Y, Z values of MyPointClass are determined and stuffed into properties.
    }
}

有没有一种简单的方法可以不循环地转换以下内容?

    List<ApiPointClass>
or
    List<List<ApiPointClass>>
or
    ApiPointClass[]

谢谢。

假设您有一个名为 apiPnts 的 IEnumerable,如果您引用 System.Linq

,则可能会这样做
apiPnts.Select(point => new MyPointClass(point)).ToList();

point 变量是 ApiPointClass 的对象,Select 在内部进行迭代。

在这种情况下,这个 returns MyPointClass 列表。

参考:https://docs.microsoft.com/en-us/dotnet/api/system.linq.enumerable.select?view=netframework-4.8

它适用于数组或列表,但不适用于列表的列表。列表的列表会有所不同。