.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;
}