开发者

Cannot use ternary operator in LINQ query

I can't figure out why I get a Object reference not set to an instance of an object. error if I use a ternary operator in my LINQ query.

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))
                          };

Any thoughts?


d.SourceType is null.

You should call

(String.IsNullOrEmpty(d.SourceType) ? ", " + d.SourceType : string.Empty)


You're checking the Length property of SourceType, which could be null.


Maybe SourceType is null, so you get exception on d.SourceType.Length.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜