C#-在读取XML时遇到问题

C#-在读取XML时遇到问题,c#,.net,xml,C#,.net,Xml,嗨,我正在读一个XML文档,如下所示 <?xml version="1.0" encoding="utf-8"?> <ArrayOfSYMBOL xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <SYMBOL Code="AA.P" Name="Alcoa Inc Pf 3.75" /> <SYMBOL

嗨,我正在读一个XML文档,如下所示

<?xml version="1.0" encoding="utf-8"?>
<ArrayOfSYMBOL xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<SYMBOL Code="AA.P" Name="Alcoa Inc Pf 3.75" />
<SYMBOL Code="AADR" Name="Wcm Bny Focused Growth Adr ETF" />
<SYMBOL Code="AAU" Name="Almaden Minerals" />
<SYMBOL Code="AAVX" Name="Etracs Daily Short 1 Month S&amp;P" />
</ArrayOfSYMBOL>


如何将数据放入一个二维字符串数组中,先使用符号,然后使用名称。

如何使用更结构化的东西,如
SYMBOL
类列表:

class Symbol
{
    public string Code { get; set; }
    public string Name { get; set; }
}


XDocument doc = XDocument.Load("test.xml");
var symbols = doc.Descendants("SYMBOL")
                 .Select(x => new Symbol 
                  { 
                    Code = (string)x.Attribute("Code"), 
                    Name = (string)x.Attribute("Name") 
                  })
                 .ToList();
这种方法的优点是,您可以以更易于阅读和理解的方式访问单个符号,而不是访问易于出错的数组中的索引,您可以使用强类型类的适当命名属性,即写出找到的所有符号可能是:

foreach (var symbol in symbols)
{
    Console.WriteLine("Symbol: {0} = {1}", symbol.Code, symbol.Name);
}
如果您只是想查找给定代码的符号名称,也可以使用
ToDictionary()


不如使用更结构化的东西,比如
Symbol
类列表:

class Symbol
{
    public string Code { get; set; }
    public string Name { get; set; }
}


XDocument doc = XDocument.Load("test.xml");
var symbols = doc.Descendants("SYMBOL")
                 .Select(x => new Symbol 
                  { 
                    Code = (string)x.Attribute("Code"), 
                    Name = (string)x.Attribute("Name") 
                  })
                 .ToList();
这种方法的优点是,您可以以更易于阅读和理解的方式访问单个符号,而不是访问易于出错的数组中的索引,您可以使用强类型类的适当命名属性,即写出找到的所有符号可能是:

foreach (var symbol in symbols)
{
    Console.WriteLine("Symbol: {0} = {1}", symbol.Code, symbol.Name);
}
如果您只是想查找给定代码的符号名称,也可以使用
ToDictionary()

我想你的意思是“代码”,然后是“名字”我想你的意思是“代码”,然后是“名字”