linq查询和空值

时间:2011-05-28 23:10:52

标签: c# xml linq

我想用linq查询一些xml文件。有一些必需和一些可选元素。只需要名称 - 其他一切都是可选的。 如果有一些NULL,例如cageCode = NULL - 它没有选择任何东西 - 我需要添加到字符串列表 - “” - 我尝试过如下,但它不起作用。当我把所有东西都填满时它工作正常,当有东西时它不会保存以列出任何东西。 你能帮我解决一下如何设置“”列出哪里是null元素? 谢谢!

var queryManufacturer = from dataManufaturer in input.Identification.Manufacturers.Manufacturer
                                                select
                                                new
                                                { 
                                                    dataManufaturer.name,
                                                    dataManufaturer.cageCode,
                                                    dataManufaturer.FaxNumber,
                                                    dataManufaturer.URL.OriginalString
                                                };

                foreach (var a in queryManufacturer)
                {
                    data.Add(a.name);
                    if (a.cageCode == null) data.Add("");
                    else data.Add(a.cageCode);
                    if (a.FaxNumber == null) data.Add("");
                    else data.Add(a.FaxNumber);
                    if (a.OriginalString == null) data.Add("");
                    else data.Add(a.OriginalString);
                }

如果xml文件中的某些元素丢失,它会抛出一个null异常 - 我不想得到这个异常 - 我想在缺少元素旁边添加空字符串

1 个答案:

答案 0 :(得分:1)

在Linq to XML查询中尝试此操作:

select new
{ 
  name = dataManufaturer.name ?? "",
  cageCode = dataManufaturer.cageCode ?? "",
  FaxNumber  = dataManufaturer.FaxNumber  ?? "",
  OriginalString = dataManufaturer.URL!=null ?  dataManufaturer.URL.OriginalString : ""
};