Назначить массив Vector3D с помощью LINQ - PullRequest
0 голосов
/ 11 октября 2019

Я ищу плавный способ назначения массива Vector3D [] с использованием LINQ (а не зацикливания). Это возможно?

Я новичок в методах LINQ, и я только начал выяснять, как назначить целый массив в одной строке кода. Например:

double[] angle_in_radians = angle_in_degrees .Select(x => x / 180 * Math.PI).ToArray();

Предположим, теперь у меня есть массив angle_in_radians выше, и я хочу использовать его в массиве vector3D:

Vector3D[] example_vector = new Vector3D[n];

. Способ решения проблемы сегодня такой:используя цикл for:

for (int i = 0; i < n; i++)
{
     example_vector[i] = new Vector3D(Math.Cos(angle_in_radians[i]), Math.Sin(angle_in_radians[i]), 0);
}

Я не могу понять, как использовать linq (если это вообще возможно). Я хочу как-то поставить:

angle_in_radians.Select(x => Math.Cos(x)).ToArray();

во всех позициях Vector3D X и то же самое с Y и Z.

1 Ответ

0 голосов
/ 11 октября 2019

Вы можете заменить цикл for на linq select следующим образом:

var example_vectors = angle_in_radians.Select(x => new Vector3D(Math.Cos(x), Math.Sin(x), 0);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...