Linq преобразование List> в List - C#

Узнай цену своей работы

Формулировка задачи:

Доброго времени суток, данный код нужно преобразовать linq выражениями и дописать выборку из
List<List<double>>
. Таким образом, что бы каждому элементу массива, присваивался элемент из списка. Т.е. 1ый массив - в него заходят 2 дефолтных параметра + кол-во первых параметров со списков. Сам код:
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));
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4.1 из 5
Похожие ответы