1
我想從xml中獲取值,並且有空值的問題。我使用這個查詢來獲取從屬性「RODZ」所有不爲空值,而這個代碼的工作,但它返回我空值過:/Linq空值查詢問題
XDocument loaded = XDocument.Load(@"c:\TERC.xml");
var q = (from c in loaded.Descendants("catalog")
from r in c.Descendants("row")
select r.Descendants("col").Where(col1 =>
col1.Attribute(XName.Get("name")).Value ==
"RODZ").Where(kc => kc.ToString() != "").FirstOrDefault().Value ?? "0").ToList();
提斯是一個大問題了我,因爲我必須分析所有數值爲int,而這個查詢不起作用:
var q = (from c in loaded.Descendants("catalog")
from r in c.Descendants("row")
select int.Parse(r.Descendants("col").Where(col1 =>
col1.Attribute(XName.Get("name")).Value ==
"RODZ").Where(kc => kc.ToString() != "").FirstOrDefault().Value ?? "0")
).ToList();
我想要得到0時該值爲空,因爲我後來將其轉換爲枚舉。
你看這個代碼有什麼用嗎?
<?xml version="1.0" encoding="UTF-8" ?>
<teryt>
<catalog name="Compix">
<row>
<col name="NAME">Name1</col>
<col name="ID"/>
</row>
<row>
<col name="NAME">Name2</col>
<col name="ID">1</col>
</row>
<row>
<col name="NAME">Name3</col>
<col name="RODZ">2</col>
</row>
</catalog>
</teryt>
我看到:)但現在FirstOrDefault()值給我exceptiom,當值爲null。 。我不擅長linq:/ – user278618 2010-10-30 10:33:14
已更新。使用IsEmptyOrNull。 – Aliostad 2010-10-30 10:37:24