Linq преобразование List> в List - C#
Формулировка задачи:
Доброго времени суток, данный код нужно преобразовать linq выражениями и дописать выборку из
. Таким образом, что бы каждому элементу массива, присваивался элемент из списка. Т.е. 1ый массив - в него заходят 2 дефолтных параметра + кол-во первых параметров со списков.
Сам код:
Листинг программы
- List<List<double>>
Листинг программы
- public List<Array> Adapt(List<List<double>> Storage, int qty, double category, double point)
- {
- var result = new List<Array>();
- var count = Stogare.Count;
- for (var i = 0; i < count; count++)
- {
- var array = new double[qty + 2];
- array[0] = category;
- array[1] = point;
- // здесь заполняется остальной массив
- result.Add(array);
- }
- return result;
- }
Решение задачи: «Linq преобразование List> в List»
textual
Листинг программы
- static class Program
- {
- static List<T[]> Adapt<T>(this IEnumerable<IEnumerable<T>> Storage, int Qty, params T[] Addition)
- => Enumerable.Range(0, Qty).Select(i =>
- Addition.Concat(Storage.Select(r => r.ElementAt(i))).ToArray()
- ).ToList();
- static void Main()
- {
- List<List<double>> input = new List<List<double>>()
- {
- new List<double>() {1, 2, 3},
- new List<double>() {4, 5, 6},
- new List<double>() {7, 8, 9},
- };
- List<double[]> expected = new List<double[]>()
- {
- /* 1 < qty */ new double[] { 11, 22, 1, 4, 7 }, // {11, 22} + нулевые элементы
- /* 2 = qty */ new double[] { 11, 22, 2, 5, 8 } // {11, 22} + первые элементы
- /* 3 > qty */
- };
- NUnit.Framework.Assert.AreEqual(expected, input.Adapt(2, 11, 22));
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д