Конвертровать string[] в char[,]

196
08 октября 2018, 01:40

Есть некоторый массив строк:

var strArr = new string[]
{
    "qwer",
    "asdf",
    "zxcv"
};

при условии, что я уверен, что все вложенные строки одинакового размера.

Нужно как-то конвертировать это в:

var chars = new char[,]
{
    {'q', 'w', 'e', 'r'},
    {'a', 's', 'd', 'f'},
    {'z', 'x', 'c', 'v'}
}

максимально простыми методами, желательно без велосипедов.

Answer 1

Объединять строки, в массив и копировать.

string[] strArr = ...;
int x = strArr.Length;
int y = strArr[0].Length;
char[,] chars = new char[x, y];
Buffer.BlockCopy(String.Concat(strArr).ToCharArray(), 0, chars, 0, x * y * 2);

В конце умножается на два, потому что char занимает 2 байта.

READ ALSO
C# спагетти из списков: оперативная память и производительность

C# спагетти из списков: оперативная память и производительность

Допустим есть 3 разных класса, A (родительский) и два наследника B и C

197
Изменение иконки в TreeViewItem

Изменение иконки в TreeViewItem

Имеется обычный TreeViewПри нажатии правой кнопкой мыши по treeviewitem вылезает меню (добавляет/удаляет запись в/из коллекции)

215
Как подключить кортежи для C# в MVS17?

Как подключить кортежи для C# в MVS17?

Как подключить кортежи для C# в Visual Studio 17?

184
Чтение файла из архива без распаковки в C#

Чтение файла из архива без распаковки в C#

Мне необходимо читать текстовый файл, что находится в архиве построчноРаспаковывать его на жесткий диск нельзя

214