转换列表<>或列表<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
它适用于数组或列表,但不适用于列表的列表。列表的列表会有所不同。
我需要将一个 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
它适用于数组或列表,但不适用于列表的列表。列表的列表会有所不同。