在LINQ表达式使用可空类型 [英] Using nullable types in Linq expressions
本文介绍了在LINQ表达式使用可空类型的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
var quantSubset =
from userAns in userAnalysis.AllUserAnswers
join ques in userAnalysis.AllSeenQuestions on userAns.QID equals ques.QID
where (ques.QuestionType == "QT")
select new {
QuestionLevel = ques.LevelID,
TimeTaken = userAns.TimeTaken,
Points = userAns.Points,
UsedWeapon = (userAns.UsedBy2 && userAns.UsedHint),
WasCorrect = userAns.WasCorrect.HasValue ? userAns.WasCorrect.Value : null
};
在我的选择表达我要选择一个可空类型WasCorrect(表达式的最后一部分),但显然我不能做到这一点现在我想要的方式。
In my select expression I want to select a nullable type WasCorrect (last part of the expression) but apparently I cannot do it the way I am currently trying.
我怎样才能得到WasCorrect为可空类型
How can I get WasCorrect as nullable type
我试过吗?WasCorrect但也犯规给了错误的Visual工作室。
I tried ?WasCorrect but that also doesnt gives error in Visual Studio.
推荐答案
您需要将空
值显式转换为可空类型
You need to cast the null
value to the nullable type explicitly:
WasCorrect = userAns.WasCorrect.HasValue ?
userAns.WasCorrect.Value : (TheTypeName?)null
否则C#不知道哪种类型的条件式应
Otherwise C# won’t know which type the conditional expression should be.
除此之外,该代码是完全是多余的。你可以简单地写:
Apart from that, the code is completely redundant. You can simply write:
WasCorrect = userAns.WasCorrect
这篇关于在LINQ表达式使用可空类型的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文