У меня есть эта строка:словарь, многомерный или неровный массив
string Text = "{1}[56](17)(20)(13)(14)[895](11)(20)[3](8)(12)(3)[19](1)(2)(13)(7)(6)";
и я должен вернуть это:
Array ( [Type] => 1
[Items] => Array ([56] => Array ( [1] => 17
[2] => 20
[3] => 13
[4] => 14)
[895] => Array ( [1] => 11
[2] => 20)
[3] => Array ( [1] => 8
[2] => 12
[3] => 3)
[19] => Array ( [1] => 1
[2] => 2
[3] => 13
[4] => 7
[5] => 6)
)
)
Как я могу это сделать? Я преуспел в php, но в C# я не могу найти решение. Я пробовал сначала со словарем, но я просто не могу его достичь. Я просто не знаю, как сделать словарь с ключом с несколькими значениями, также имеющими несколько значений. До сих пор я сделал это:
var Menu_Matrix = new Dictionary<string, string>();
var Menu_Items = new Dictionary<string, List<string>>();
char[] sep1 = { '{', '}' };
char[] sep2 = { '[', ']' };
char[] sep3 = { '(', ')' };
string[] Menu_Id = new string [10];
string[] Category_Id = new string[20];
Menu_Id = Text.Split(sep1);
Menu_Matrix.Add("Type", Menu_Id[1]);
Category_Id = Menu_Id[2].Split(sep2);
int cat_len = 0;
cat_len = Category_Id.Length;
for (int i = 1; i < cat_len;i++)
{ int pos = 0;
if(Category_Id[i+1].IndexOf('(')!=-1)
pos=i+1;
if(pos>i)
{ var item = new List<string>();
string[] Item_id = new string[20];
Item_id = Category_Id[pos].Split(sep3);
for (int j = 1; j < Item_id.Length;j++)
if(Item_id[j]!="")
item.Add(Item_id[j]);
Menu_Items.Add(Category_Id[i], item);
}
i = pos;
}
}
return Menu_Items;
и результат:
[56] => Array ([1] => 17
[2] => 20
[3] => 13
[4] => 14)
[895] => Array ([1] => 11
[2] => 20)
[3] => Array ([1] => 8
[2] => 12
[3] => 3)
[19] => Array ([1] => 1
[2] => 2
[3] => 13
[4] => 7
[5] => 6)
Надеется, что вы знаете, что я хочу сказать, и помогите мне, пожалуйста! Меня не волнует, что я использую: словарь, зубчатый массив или многомерный массив.
Вы сказали, что вы пытались что-то в PHP, может показать нам, что таким образом мы можем помочь вы с ним? – castis
Чтобы использовать несколько значений одного и того же ключа в словаре, используйте словарь> –
deathismyfriend
Можете ли вы поделиться тем, что вы хотите, чтобы конечный результат выглядел? – whihathac