我有一个返回新列表的方法(它与多项选择答案有关):
public static List<questionAnswer> GetAnswersWithSelections(this Questions_for_Exam__c question)
{
List<questionAnswer> answers = new List<questionAnswer>();
answers.Add(new questionAnswer() { Ordinal = 1, AnswerText = question.AN1__c, Selected = (bool)question.Option1__c });
...
return answers;
}
如果我检查这种方法的结果 - 我看到了正确的数据,例如红色=假,绿色=真,蓝色=假
然后我尝试使用LINQ Where扩展方法过滤返回的结果:
List<questionAnswer> CorrectSelections = question.GetAnswersWithSelections();
var tmpA = CorrectSelections.Where(opt => opt.Selected = true);
当我实现tmpA时,会发生两件事:
有什么想法吗?
答案 0 :(得分:14)
您需要使用==
而不是=
:
var tmpA = CorrectSelections.Where(opt => opt.Selected == true);
因此,当您搜索条件时,您正在设置值。 这是一个常见的错误,我也会这样做:)
答案 1 :(得分:7)
你的行
opt => opt.Selected = true
需要另一个等号:
opt => opt.Selected == true
答案 2 :(得分:4)
你想要opt.Selected == true
。您有一个=
答案 3 :(得分:0)
在您的linq代码中将=
更改为==
。