Преобразовать список <> или Список > - PullRequest
0 голосов
/ 31 января 2020

Мне нужно преобразовать точку одного типа класса (этот тип из стороннего 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[]

Спасибо.

1 Ответ

2 голосов
/ 31 января 2020

Предполагая, что у вас есть IEnumerable под названием apiPnts, вы могли бы сделать это, если бы вы ссылались на 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

Применяется к массиву или списку, но не к список списков. Список списков будет другим.

...