Замена многомерного массива списком (List) - C#

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

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

Помогите с реализацией замены многомерного массива списком(List).

Решение задачи: «Замена многомерного массива списком (List)»

textual
Листинг программы
using System;
using System.Collections.Generic;
 
namespace ConsoleApplication170
{
    class Program
    {
        static void Main(string[] args)
        {
            var array = new MultDimArray<int>(3, 4, 5); // трехмерный массив 3 x 4 x 5
 
            array[2, 3, 4] = 15;
            var v = array[2, 3, 4];
 
            Console.WriteLine(v);
 
            Console.ReadLine();
        }
    }
 
    class MultDimArray<T>
    {
        private List<T> list;
        private int[] dimensions;
 
        public MultDimArray(params int[] dimensions)
        {
            this.dimensions = dimensions;
 
            var count = 1;
            for (int i = 0; i < dimensions.Length; i++)
                count *= dimensions[i];
 
            list = new List<T>(count);
 
            for (int i = 0; i < count; i++)
                list.Add(default(T));
        }
 
        int GetSignature(int[] indexes)
        {
            var res = indexes[0];
 
            for(int i=1;i<dimensions.Length;i++)
                res = res * dimensions[i] + indexes[i];
 
            return res;
        }
 
        public T this[params int[] indexes]
        {
            get { return list[GetSignature(indexes)]; }
            set { list[GetSignature(indexes)] = value; }
        }
    }
}

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


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

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

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