我有一个 linq 语法来从 XML 中获取元素,这是 XML 语法:
<bbb ccc="12345">
<productA>FIRST</productA>
<!--productB>SECOND</productB-->
<productC>THIRD</productC>
</bbb>
我想用产品初始化一个字符串数组:
string[] aaa =
(from el in keyValueList.Elements("bbb")
where (string)el.Attribute("ccc") == "12345"
select new string[] { (el.Attribute("productA").Value), el.Attribute("productB").Value, el.Attribute("productC").Value }).FirstOrDefault();
现在我尝试在找不到产品时节省空间(比如 productB),我不能使用 DefaultIfEmpty() 但它没有编译......比如:
string[] aaa =
(from el in keyValueList.Elements("bbb")
where (string)el.Attribute("ccc") == "12345"
select new string[] { (el.Attribute("productA").Value).DefaultIfEmpty(string.Empty), el.Attribute("productB").Value.DefaultIfEmpty(string.Empty), el.Attribute("productC").Value.DefaultIfEmpty(string.Empty) }).FirstOrDefault();
总之,我想得到这个数组: {"FIRST",null,"THIRD"} 而不是 {"FIRST","THIRD"}
我可以做吗?