C# 创建数组的动态数组
在C#中,我试图创建一个数组数组,或者使用XML数据将其称为锯齿数组。但我完全不知道如何开始 XML示例C# 创建数组的动态数组,c#,.net,arrays,xml,.net-3.5,C#,.net,Arrays,Xml,.net 3.5,在C#中,我试图创建一个数组数组,或者使用XML数据将其称为锯齿数组。但我完全不知道如何开始 XML示例 <?xml version="1.0" encoding="utf-8"?> <MAIN> <Items> <Name>name1</Name> <Data>data1</Data> <Category>category1</Category> <
<?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>
名称1
数据1
类别1
姓名2
数据2
类别2
名字3
数据3
类别2//与上述类别相同
...
...
姓名20
数据20
类别16
现在我需要创建一个包含category1,category2。。。对于类别节点上的类别,需要为每个类别创建一个单独的数组来存储项目名称和数据,以便检索它们以供使用
从上面的示例xml中,我需要在单个数组中包含相同的类别项
项目和类别计数是完全动态的。
如何动态执行此操作?您可以使用linq执行此操作
var categorized = xe.Descendants("Items")
.GroupBy(x => x.Element("Category").Value)
.Select(x => new
{
Category = x.Key,
Items = x.ToList()
}).ToList();
您将使用相同的类别
元素向组中添加项目
。
然后您将在组中选择类别
和项目
。
它将为您返回列表
这就是分类结构的样子
[
{
"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"
}
}
]
}
]
请看一看C#中的序列化,这将为您指明正确的方向。我对编程非常陌生,希望在这方面得到帮助。您至少可以自己尝试一下,然后根据遇到的问题编辑您的问题。互联网上充满了如何做你所要求的事情的例子!如果不是自己尝试(失败)的话,你如何才能提高你的技能?从忘记数组开始吧。您需要一个列表,可能还需要一个
类项目
。如何创建动态数组名称需要一些示例代码,以便它可以帮助我什么是动态数组名称?类别将是动态的,它可以是任何名称或任何计数您的意思是类别
作为元素名称或类别
元素值?这是我说的值category1,类别2