2015-11-23 5 views
-4

В C# Я пытаюсь создать массив массивов или его можно назвать неровным массивом с использованием данных XML. Но я совершенно запутался, как начатьСоздание динамического массива массивов

XML Sample

<?xml version="1.0" encoding="utf-8"?> 
<MAIN> 
    <Items> 
    <Name>name1</Name> 
    <Data>data1</Data> 
    <Category>category1</Category> 
    </Items> 
    <Items> 
    <Name>name2</Name> 
    <Data>data2</Data> 
    <Category>category2</Category> 
    </Items> 
    <Items> 
    <Name>name3</Name> 
    <Data>data3</Data> 
    <Category>category2</Category>//same category as above 
    </Items> 
    ... 
    ... 
    <Items> 
    <Name>name20</Name> 
    <Data>data20</Data> 
    <Category>category16</Category> 
    </Items> 
</MAIN> 

Теперь мне нужно создать массив с category1, category2, ... ДО каких категорий есть по категориям Node, нужно создать отдельные массивы каждой категории для хранения имени и данных элемента, чтобы я мог их получить для моего использования.

Из выше образца XML мне нужны одни и те же элементы категории в одном массиве

товары и количество категорий полностью динамичны. Как это сделать динамически?

+1

Посмотрите сериализации в C#, который должен направить вас в правильном направлении – derape

+0

Я очень новый для программирования ожидая помощи на это – KMKMAHESH

+1

Вы можете, по крайней мере, попробовать сами, а затем отредактировать свой вопрос с проблемами, с которыми вы сталкиваетесь. В Интернете полно примеров того, как делать то, что вы просите! Поиск https://www.google.com/search?q=xml+deserialization+c%23 – derape

ответ

2

вы можете сделать это с помощью LINQ

var categorized = xe.Descendants("Items") 
    .GroupBy(x => x.Element("Category").Value) 
    .Select(x => new 
    { 
     Category = x.Key, 
     Items = x.ToList() 
    }).ToList(); 

Вы добавите Items с таким же Category элементом в группу. Затем вы выберете Category и Items в группе. Он возвращается List<{Category, List<Items>}> для вас

Это то, что классифицируется структура выглядит

[ 
    { 
    "Category": "category1", 
    "Items": [ 
     { 
     "Items": { 
      "Name": "name1", 
      "Data": "data1", 
      "Category": "category1" 
     } 
     } 
    ] 
    }, 
    { 
    "Category": "category2", 
    "Items": [ 
     { 
     "Items": { 
      "Name": "name2", 
      "Data": "data2", 
      "Category": "category2" 
     } 
     }, 
     { 
     "Items": { 
      "Name": "name3", 
      "Data": "data3", 
      "Category": "category2", 
      "#text": "//same category as above\n " 
     } 
     } 
    ] 
    }, 
    { 
    "Category": "category16", 
    "Items": [ 
     { 
     "Items": { 
      "Name": "name20", 
      "Data": "data20", 
      "Category": "category16" 
     } 
     } 
    ] 
    } 
] 
+0

Как создать динамические имена массивов нужно какой-то примерный код, чтобы он мог мне помочь – KMKMAHESH

+0

Что такое имена динамических массивов? – dotctor

+0

категория будет динамичной, это может быть любое имя или любое количество – KMKMAHESH

Смежные вопросы