Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 01.02.2013
Сообщений: 5

Доступ к конкретной размерности многомерного массива

08.06.2013, 18:58. Показов 1322. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Возникла необходимость присвоить одномерному массиву одну из размерностей друмерного.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
class ShellSort<T> where T: IComparable
{
    ...
    public T[] arr;
 
    public void Fill(T[,] array, int index)
    {
        arr = new T[array.GetLength(1)];
        arr = array[index];
   
    }
    ...
}
Вот таким образом
C#
1
arr = array[index];
конечно же не работает.
Подскажите пожалуйста есть ли возможность это сделать или нет.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
08.06.2013, 18:58
Ответы с готовыми решениями:

Увеличение размерности многомерного массива
Здравствуйте. Ситуация такая: есть несколько массивов, в которые я вношу константное количество данных. Но я хочу сделать, что бы я вводил...

Получение размерности многомерного массива
Пусть будет массив N с двумя размерностями. Для одномерного массива всё просто, надо воспользоваться Length'ом, а для многомерного? В...

Можно ли реализовать доступ к элементу двумерного массива, сняв ограничение на проверку размерности
В Си и Си++ если объявлен 2 мерный массив int buf; то,к 10 элементу можно обращаться следующим образом buf // все элементы...

8
 Аватар для Дмитрий3241
660 / 530 / 137
Регистрация: 07.07.2011
Сообщений: 1,232
Записей в блоге: 6
08.06.2013, 19:10
C#
1
array.GetLength(/*Измерение*/);
0
39 / 38 / 4
Регистрация: 07.05.2013
Сообщений: 96
08.06.2013, 19:12
Цитата Сообщение от ShineNoobas Посмотреть сообщение
Возникла необходимость присвоить одномерному массиву одну из размерностей друмерного.
Однозначно это можно сделать списками list<string> и т.д. и т.п.
0
 Аватар для Дмитрий3241
660 / 530 / 137
Регистрация: 07.07.2011
Сообщений: 1,232
Записей в блоге: 6
08.06.2013, 19:20
Цитата Сообщение от AndreyAndreev Посмотреть сообщение
Однозначно это можно сделать списками list<string> и т.д. и т.п.
Я вроде написал как сделать.
0
0 / 0 / 0
Регистрация: 01.02.2013
Сообщений: 5
08.06.2013, 19:34  [ТС]
Цитата Сообщение от Дмитрий3241 Посмотреть сообщение
C#
1
array.GetLength(/*Измерение*/);
GetLength(int dim) возвращает количество элементов в конкретной размерности.

Цитата Сообщение от AndreyAndreev Посмотреть сообщение
Однозначно это можно сделать списками list<string> и т.д. и т.п.
Как раз когда ждал ответа пытался это реализовать. Но вышло что-то очень глупое.

C#
1
2
3
4
5
6
7
ArrayList[] myList = new ArrayList[30];
...
public void Fill(Array List[] array, int index)
{
    arr = new T[array[index].Count - 1];
    arr = (T[])Convert.ChangeType(array[index], typeof(T[]));
}
В итоге ошибка:
Object must implement IConvertible в том месте где я делаю ChangeType. Видать слишком намудрил.
Буду очень благодарен если кто-то подскажет альтернативу.
0
 Аватар для Дмитрий3241
660 / 530 / 137
Регистрация: 07.07.2011
Сообщений: 1,232
Записей в блоге: 6
08.06.2013, 19:45
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
using System;
 
namespace ConsoleApplication1
{
    class Program
    {
        static void Main()
        {
            int[][] arr2 = new int[][]
            {
                new int[] {1, 2, 3},
                new int[] {4, 5, 6},
                new int[] {7, 8, 9}
            };
 
            int[] arr1 = arr2[1];
 
            Array.ForEach( arr1, x => Console.Write( x + " " ) );
            Console.ReadKey();
        }
    }
}
Добавлено через 34 секунды
А по другому только созданием нового массива и копированием элементов туда.
1
0 / 0 / 0
Регистрация: 01.02.2013
Сообщений: 5
08.06.2013, 23:58  [ТС]
Дмитрий3241, к сожалению такой способ не подходит, так как я считываю с файла огромное количество чисел для тестирования алгоритма сортировки.

Вообщем, как я понял, проблема в том, что в случае с многомерными массивами невозможно получить ссылку на конкретную размерность, а только на сам массив, что есть очень плохо . Придется выдумывать более грубый способ реализации или перемешивать каким-то образом масив.
0
 Аватар для Дмитрий3241
660 / 530 / 137
Регистрация: 07.07.2011
Сообщений: 1,232
Записей в блоге: 6
10.06.2013, 10:13
ShineNoobas, хм, а можно поинтересоваться для какой цели вы тестируете алгоритм сортировки?
0
0 / 0 / 0
Регистрация: 01.02.2013
Сообщений: 5
10.06.2013, 12:21  [ТС]
Дмитрий3241, можно конечно, это не секрет. Задание у меня такое на курсовой проект. Реализовать параллельный и последовательный алгоритм сортировки Шелла, взять из файла много-много чисел, прогнать по очень многим тестам массивы разных размерностей, сравнить эфективность параллельного и последовательного алгоритмном и еще несколько деталей, это в общих чертах.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.06.2013, 12:21
Помогаю со студенческими работами здесь

Инициализация многомерного массива
Помогите заполнить многомерный массив этим массивом ДАЗРВС ТУЕПОМ ЙБГЖИК ЛНФХЦЧ ШЩЪЫЬЭ ЮЯ. ,- (четвёртый символ - это...

Копирование многомерного массива
Есть ли какие-нибудь способы копирования одного многомерного массива Array в другой anotherArray ? При чем у них могут быть разные...

Сортировка многомерного массива по возрастанию
Здравствуйте! Я начал изучать c#, и столкнулся с такой проблемой. Мне нужно самому ввести размер массива и элементы, а потом отсортировать...

Создание многомерного массива-структур
Нужно создать и сразу заполнить массив-структур 20-6(6-строк, 20-столбцов) Например, структура: struct Train { public...

Определение размерностей многомерного массива
Доброго времяпровождения.хотел спросить, как подсчитать количество цепей в многомерном массиве. Читал документацию на профессор-веб,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
BOINC: 22 года — и всё ещё работает
Programma_Boinc 12.03.2026
BOINC: 22 года — и всё ещё работает Дэвид Андерсон написал ретроспективу. Кратко: в 2001 году он ушёл из United Devices, где был CTO, и за несколько месяцев написал ядро BOINC — клиент, сервер,. . .
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru