下面是我的代码:
string displayName = Dictionary.FirstOrDefault(x => x.Value.ID == long.Parse(options.ID)).Value.DisplayName;
如果x.Value.ID
与options.ID
匹配,代码就能正常工作。但是,如果不是这样,我会得到一个NullReferenceException
。
发布于 2014-01-16 20:11:24
您可以使用其他LINQ方法的组合来处理不匹配条件:
var res = dictionary.Where(x => x.Value.ID == someID)
.Select(x => x.Value.DisplayName)
.DefaultIfEmpty("Unknown")
.First();
发布于 2014-01-16 20:04:50
这是因为FirstOrDefault
可能返回null
,导致下面的.Value
导致异常。您需要将其更改为类似以下内容:
var myThing = things.FirstOrDefault(t => t.Id == idToFind);
if(myThing == null)
return; // we failed to find what we wanted
var displayName = myThing.DisplayName;
发布于 2015-07-18 00:15:57
为了添加到解决方案中,这里有一个LINQ语句,它可能会有所帮助
Utilities.DIMENSION_MemTbl.Where(a => a.DIMENSION_ID == format.ContentBrief.DimensionID).Select(a=>a.DIMENSION1).DefaultIfEmpty("").FirstOrDefault();
如果查询结果为null,则结果为空字符串。
https://stackoverflow.com/questions/21161203
复制相似问题