.NET 4.x Метод, преобразующий многомерные или ступенчатые массивы в IEnumerable - C#

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

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

меня все мучает идея, как преобразовать массив любой размерности в последовательность. Не покидает мысль о том, как удобно было бы удобно использовать Linq на любых массивах. Написал класс для хранения элементов
class Element<T>
{
    public T Value { get; set; }
    public int[] Indices { get; set; }
    public Element(T value, params int[] indices)
    {
        Indices = indices;
        Value = value;
    }
}
и никак не справлюсь с методом преобразования
public static IEnumerable<Element<T>> ToEnum<T>(Array array)
{
    
}
Я так себе представляю, что нужно написать еще один метод, в который передавать исходный массив, и текущие индексы, и пока количество индексов меньше размерности массива (array.Rank), вызывать рекурсивно этот же метод, а если равняется, возвращать элемент по заданному индексу. В общем, нужна помощь

Решение задачи: «.NET 4.x Метод, преобразующий многомерные или ступенчатые массивы в IEnumerable»

textual
Листинг программы
IEnumerable<T> Convert<T>(Array init)
            where T : struct
        {
            foreach (var elem in init) yield return (T)elem;
        }

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


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

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

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