如果我在LINQ查询中使用三元运算符,我无法弄清楚为什么会出现Object reference not set to an instance of an object.
错误。
var courses = from d in somesource
orderby d.SourceName, d.SourceType
select new
{
ID = d.InternalCode,
Name = string.Format("{0} - {1}{2}", d.InternalCode, d.SourceName, (d.SourceType.Length > 0 ? ", " + d.SourceType : string.Empty))
};
有什么想法吗?
答案 0 :(得分:8)
d.SourceType
是null
。
你应该致电
(String.IsNullOrEmpty(d.SourceType) ? ", " + d.SourceType : string.Empty)
答案 1 :(得分:1)
您正在检查Length
的{{1}}属性,该属性可能为空。
答案 2 :(得分:1)
也许SourceType为null,因此您在d.SourceType.Length上获得异常。