Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# C:我应该使用什么:数组或数组列表或列表列表?_C#_Xml_Arrays_List - Fatal编程技术网

C# C:我应该使用什么:数组或数组列表或列表列表?

C# C:我应该使用什么:数组或数组列表或列表列表?,c#,xml,arrays,list,C#,Xml,Arrays,List,我在学C,我需要一些建议 我正在尝试从XML文件创建用户Active Directory。这些用户是学生和教师。对于每个用户,我需要他的名字、姓氏、生日来生成他的登录名、密码 一个学生只能是班上一个小组的成员。 一名教师可以有一个或多个小组课在他任教的地方。 我需要的所有信息都在XML中 在powershell中,它的工作原理如下: 学生:tab[姓名、姓氏、出生日期、登录名、组],也在 C 教师:选项卡[姓名、姓氏、出生日期、登录名、选项卡[组]] 我怎样才能用C来做这个?我尝试使用3D阵列,

我在学C,我需要一些建议

我正在尝试从XML文件创建用户Active Directory。这些用户是学生和教师。对于每个用户,我需要他的名字、姓氏、生日来生成他的登录名、密码

一个学生只能是班上一个小组的成员。 一名教师可以有一个或多个小组课在他任教的地方。 我需要的所有信息都在XML中

在powershell中,它的工作原理如下:

学生:tab[姓名、姓氏、出生日期、登录名、组],也在 C 教师:选项卡[姓名、姓氏、出生日期、登录名、选项卡[组]] 我怎样才能用C来做这个?我尝试使用3D阵列,但它很难看,而且在数百名用户中性能不是很好。。。 有没有更好的方法来处理列表?ArrayList

对不起,我英语不好

感谢您的帮助和代码^^

教师的XML示例:

<DATA>
-<PERSONS>
--<PERSON ID="6022">
---<NAME>DOE</NAME>
---<SURNAME>John</SURNAME>
---<BIRHDATE>1952-06-29</DATE_NAISSANCE>
--</PERSON>
--...
-</PERSONS>
-<CLASSES>
--<CLASS CODE="3A">
---<TEACHERS>
----<TEACHER ID="6022">
-----<SUBJECT>Maths</SUBJECT>
----</TEACHER>
---</TEACHERS>
--</CLASS>
--<CLASS CODE="5D">
---<TEACHERS>
----<TEACHER ID="6022">
-----<SUBJECT>Maths</SUBJECT>
----</TEACHER>
---</TEACHERS>
--</CLASS>
...
-</CLASSES>
</DATA>

你可能想看看

您可以通过调用XDocument.Parse创建一个

例如:


我不完全确定您在寻找什么:您现在正在使用一个要更改的数组做什么?你是说每个人只是数组中的一个字符串球吗?根据您所说的,您应该真正创建一个Person类,该类的属性由学生和教师共享,然后再创建两个类,学生和教师,都继承自该类。在这一点上,在Student上有一个Class string属性,而在Teacher上有一个ClassesTaught List属性,而不是一个单独的组属性是有意义的。例如,对于在三维空间中最好表示为三维阵列点的对象,三维阵列非常有用,但对于有组织的数据列表,最好将数据实际组织到具有属性的类中


此时,您将把所有数据解析为单个Person对象,并将它们添加到列表。或者,如果您愿意,根据您使用它的方式,如果ID属性实际上是一个唯一标识符,并且您希望通过该ID键轻松访问Person对象,则可以使用字典

ArrayList的使用案例已经不多了。如果你能帮助的话,尽量避免它和它的不断的播放和重播。

谢谢,但我需要将它们放在数组或列表下,因为我会将用户与active directory进行比较,以便每年为每个学校创建/修改它们。。。。实际上,我使用XmlDocument和XmlNode为m数组设置属性值和节点InnerText。你建议我直接从xml文件开始工作吗?不,我自己不会解析这些文件。我过去也使用过XmlDocument。只是使用起来有点困难。XDocument在我看来是更新的,并且更易于使用。@BrandonCuff回答得不错,但您可能希望提到这是一个LinqPad示例或删除转储。谢谢。我想做的就是创建用户并影响他们的群组。我需要验证用户是否已经存在,并在需要时进行更新。实际上,在powershell中,我使用XML文件为学生和教师创建和数组,使用现有用户为学生和教师创建和数组,然后比较它们并完成这项工作。在powershell中,我可以使用一个元素和数组,该元素是每个教师组的数组,但我不能使用c,我不知道如何正确,这就是我的建议,创建一个带有属性的用户列表。或者你是说你不关心他们的任何其他属性,你只关心用户集,每个用户都有一个或多个组?您是否关心列表中的用户是学生还是教师?我不太确定你想解决什么问题。我想我的问题是我对c和类的误解,实际上我在VB中使用它就像函数一样。我需要找到如何从xml中临时存储每个用户、教师和学生的值。使用这些值,我创建/更新每个用户。以前,我在powershell中使用数组。教师数组有一个用于group元素的数组。我不知道用c怎么做,所以我试着用3D数组,但效果不是很好。。。
var xml = @"<DATA>
<PERSONS>
<PERSON ID=""6022"">
<NAME>DOE</NAME>
<SURNAME>John</SURNAME>
<BIRHDATE>19520629</BIRHDATE>
</PERSON>
</PERSONS>
<CLASSES>
<CLASS CODE=""3A"">
<TEACHERS>
<TEACHER ID=""6022"">
<SUBJECT>Maths</SUBJECT>
</TEACHER>
</TEACHERS>
</CLASS>
<CLASS CODE=""5D"">
<TEACHERS>
<TEACHER ID=""6022"">
<SUBJECT>Maths</SUBJECT>
</TEACHER>
</TEACHERS>
</CLASS>
</CLASSES>
</DATA>";

var doc = XDocument.Parse(xml);

var peopleElements = doc
    .Elements("DATA")
    .Elements("PERSONS")
    .Elements("PERSON");
var q = from person in peopleElements
select new {
    Name = person.Element("NAME").Value,
    BirthDate = person.Element("BIRHDATE").Value
};

var peopleList = q.ToList();