C# 无法在LINQ表达式中将字符串转换为DateTime

C# 无法在LINQ表达式中将字符串转换为DateTime,c#,datetime,linq-to-xml,C#,Datetime,Linq To Xml,我使用LINQ to XML表达式将一些XML数据反序列化为对象列表。我的对象只是一个集合字段: public class DataObject { private string Name { get; set; } private DateTime Date { get; set; } } 以下是LINQ查询: XDocument linqXml = XDocument.Parse(dataToDeserialize.OuterXml) List<DataObject> M

我使用LINQ to XML表达式将一些XML数据反序列化为对象列表。我的对象只是一个集合字段:

public class DataObject
{
 private string Name { get; set; }
 private DateTime Date { get; set; }
} 
以下是LINQ查询:

XDocument linqXml = XDocument.Parse(dataToDeserialize.OuterXml)
List<DataObject> MyObjects = (from object in linqXml.Descendants("object")
select new DataObject
{
 Name = object.Element("Name").Value,
 Date = Convert.ToDateTime(object.Element("Date").Value)
} 
字符串正确地转换为新的DateTime对象。如果我将对象上的日期字段切换为字符串类型,然后在另一个方法中转换它,它将转换。当它成为LINQ查询的一部分时,它似乎不起作用

我在这件事上被难住了。我也尝试过使用DateTime.Parse(string),但这会引发相同的异常。是否有任何方法在查询中执行此转换,或者在创建对象后必须转换字段

编辑以添加:

示例XML: 每个标记中的属性都是由我查询以获取此数据的事务引擎生成的。我在调试时提取了XML的文本,在日期标记之间似乎没有额外的空白

<Object>
 <Name __genericType="String" __specificType="[String]" __nodeType="DataField">HelloThere</Name>
 <Date __genericType="Timestamp" __specificType="[TimeStamp]" __nodeType="DataField">2013-05-12T11:08:04-06:00</Date>
</Object>

HelloThere
2013-05-12T11:08:04-06:00

您可以显示您的xml吗?此外,您的linq查询将无法编译,因为缺少一个括号。请在Date=Convert.ToDateTime(object.Element(“Date”)。实际代码右侧的值中关闭该括号。可能您的XML中有一些额外的空格……您是否尝试过
Convert.ToDateTime(string.Trim(object.Element(“Date”).Value))
?您的
Date
元素是否只包含日期,或者它有其他子元素?嗯,我觉得有点不好意思。再深入一点,这是由于我的XML文件中的另一个对象节点的日期标记之间没有任何内容造成的……因此,当然,您不能将空字符串转换为日期时间。@mallan1121,除非您不知道如果你有一个投票结果,你可以简单地删除你的问题。
<Object>
 <Name __genericType="String" __specificType="[String]" __nodeType="DataField">HelloThere</Name>
 <Date __genericType="Timestamp" __specificType="[TimeStamp]" __nodeType="DataField">2013-05-12T11:08:04-06:00</Date>
</Object>