LoneRay
@LoneRay
Начинающий кодировщик.

Как преобразовать из object в string[,]?

Всем вечер добрый. У меня появилась проблема с конвертацией и решить не могу, помогите пожалуйста. В переменной типа object храниться двумерный массив строк, и мне нужно конвертировать из object в string[,].
Помогите пожалуйста.
  • Вопрос задан
  • 1902 просмотра
Решения вопроса 1
tomnolane
@tomnolane
профессиональный разработчик
в шапку добавить
using System.Collections;

string[,] str_arr = new string[2,2] {{"строка1-1","строка1-2"},{"строка2-1","строка2-2"}};
            object ojb = str_arr;

            string[,] target = new string[2, 2];

            var myList = ojb as IEnumerable; int i = 0; int y = 0;
            if (ojb != null)
            {
                foreach (var element in myList)
                {  
                    if (i != 0 && i % 2 == 0 && y == 0)
                    {
                        y = 1;
                    }
                    else if(y == 2)
                    {
                        y = 0; i++;
                    }

                    target[i,y] = element.ToString(); 
                     y++;
                } 
                Console.ReadKey();
            }


и посмотреть что лежит в string[,] target уже будет не проблема...

UPD

object ojb = str_arr;

            string[,] target = new string[2000, 2];

            var string_Arr = ojb as IEnumerable; int i = 0; int y = 0;
            if (ojb != null)
            {
                foreach (var elements in string_Arr)
                { 
                    if (elements != null)
                    {
                        var enum_elements = elements as IEnumerable;
                        foreach (var elem in enum_elements)
                        {
                            if (i != 0 && i % 2 == 0 && y == 0)
                            {
                                y = 1;
                            }
                            else if (y == 2)
                            {
                                y = 0; i++;
                            }

                            target[i, y] = elem.ToString();
                            y++;
                        } 
                    } 
                } 
                Console.ReadKey();
            }


п.с.с. я не уверен что где-то есть "специальный метод", чтобы также сделать.... максимум через linq переписать
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
LoneRay
@LoneRay Автор вопроса
Начинающий кодировщик.
И так, вот частичный ответ на мой вопрос.
Array a =  "объект в котором храниться массив" as Array;

Для того чтобы чётко понять какой тип, просто воспользуйтесь методом GetType() в вашем объекте и посмотрите название типа хранящихся элементов и потом воспользуйтесь классом этого типа.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы