通过C#中的LINQ将XML加载到CLR对象中

时间:2010-11-23 02:13:18

标签: c# linq

我有一些XML已加载到XDocument中。我的XML如下所示:

<Items>
  <Item Date="11/22/2010 9:05:23 PM" />
  <Item Date="11/22/2010 9:05:39 PM" />
</Items>

每个Item都包含DateTime。我使用以下代码将此XML加载到XDocument中:

string s = GetXml();
XDocument xml = XDocument.Parse(s);

我想弄清楚如何将Items加载到List<DateTime>。有人可以用LINQ和C#向我解释如何做到这一点吗?

谢谢!

3 个答案:

答案 0 :(得分:2)

未经测试,但这样的事情应该可以解决问题:

var list = (from item in xml.Root.Descendents("Item")
           select DateTime.Parse(item.Attribute("Date").Value).ToList();

答案 1 :(得分:1)

var query = xml.Root.Elements("Item").
                Select(item => DateTime.Parse(item.Attribute("Date").Value));

List<DateTime> result = query.ToList();

答案 2 :(得分:1)

您可以使用以下语句创建日期列表,您可以使用XElement to DateTime中的显式强制转换而不是使用DateTime.Parse

var dates = xml.Root.Elements("Item")
                    .Select(e => (DateTime)e.Attribute("Date")).ToList();