.NET 4.x Метод, преобразующий многомерные или ступенчатые массивы в IEnumerable - C#
Формулировка задачи:
меня все мучает идея, как преобразовать массив любой размерности в последовательность. Не покидает мысль о том, как удобно было бы удобно использовать Linq на любых массивах. Написал класс для хранения элементов
и никак не справлюсь с методом преобразования
Я так себе представляю, что нужно написать еще один метод, в который передавать исходный массив, и текущие индексы, и пока количество индексов меньше размерности массива (array.Rank), вызывать рекурсивно этот же метод, а если равняется, возвращать элемент по заданному индексу. В общем, нужна помощь
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) { }
Решение задачи: «.NET 4.x Метод, преобразующий многомерные или ступенчатые массивы в IEnumerable»
textual
Листинг программы
IEnumerable<T> Convert<T>(Array init) where T : struct { foreach (var elem in init) yield return (T)elem; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д