我需要将一个类类型的点(这种类型是来自第三方API)转换为我自己制作的另一类类型的点。
以下作品:
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在内部进行迭代。
在这种情况下,这将返回MyPointClass的列表。
参考:https://docs.microsoft.com/en-us/dotnet/api/system.linq.enumerable.select?view=netframework-4.8
它适用于数组或列表,但不适用于列表列表。列表列表会有所不同。