当init为null时,如何在数组中节省空间?

时间:2018-04-11 16:22:15

标签: c# xml linq defaultifempty

我有一个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”}

我可以这样做吗?

0 个答案:

没有答案