HIFaire face à un élément datetime null dans des documents XML en utilisant LINQ
J'ai un exemple de document qui ressemble à
<ItemEntry>
<PurchaseDate>2010-03-18T20:36:32.81108+13:00</PurchaseDate>
<StoreGUID>0a0324ad-5f99-486a-a2d0-870bc6991e9f</StoreGUID>
<ExpiryDate />
<CardID>111111</CardID>
<PurchaseAmount>0</PurchaseAmount>
<RedeemedAmount />
<EntryType>1</EntryType>
<RedeemedDate />
<SalesAssistantID>0</SalesAssistantID>
</ItemEntry>
Comme vous pouvez le voir, il y a quelques éléments ExpiryDate et RedeemedDate sont vides.
var q = from c in xml.Elements("ItemEntry")
select new mdDetail {
PurchaseDate = (DateTime)c.Element("PurchaseDate"),
StoreGUID = (Guid)c.Element("StoreGUID"),
ExpiryDate = (DateTime?)c.Element("ExpiryDate")??DateTime.MinValue,
CardID = (int)c.Element("CardID"),
PurchaseAmount = (double)c.Element("PurchaseAmount"),
RedeemedAmount = (double?)c.Element("RedeemedAmount"),
EntryType = (int)c.Element("EntryType"),
RedeemedDate = (DateTime?)c.Element("RedeemedDate") ??DateTime.MinValue,
SalesAssistantID = (int)c.Element("SalesAssistantID"),
}
;
foreach (var item in q)
{
}
Je ne sais pas comment faire face à la valeur de l'élément nul, j'ai essayé ?? DateTime.MinValue et ?? nul mais les deux me donnent une « chaîne n'a pas été reconnu comme un DateTime valide. » Erreur.
Des suggestions?
Merci
Vous pouvez également utiliser 'null' au lieu de' DateTime.MinValue' si 'ExpireyDate' est déclaré nullable. – Gabe
Merci! ça a fait l'affaire –