質問番号のリストがあったら
var questions = new List<int> { 2, 4, 8 };
linqでこのようなことを行うクエリを持つことは可能ですか?
var results = new List<Answer>();
foreach (var qNum in questions)
{
results.AddRange(Answers.Where(x => eval(x.Question+qNum) == "Yes"));
}
したがって、これはx.Question2、x.Question4、およびx.Question8の答えを検索します。
補遺
現在私はこれをやっています:
var questionAnswers = new List<Answer>();
var Q2 = Questions.Where (x => x.MainQ2.ToUpper() == "NO")
.Select(x => new Answer { QuestionNumber = 2, AnswerText = x.MainTextQ2, User_Id = x.User_Id });
var Q4 = Questions.Where (x => x.MainQ4.ToUpper() == "NO")
.Select(x => new Answer { QuestionNumber = 4, AnswerText = x.MainTextQ4, User_Id = x.User_Id });
var Q8 = Questions.Where (x => x.MainQ8.ToUpper() == "NO")
.Select(x => new Answer { QuestionNumber = 8, AnswerText = x.MainTextQ8, User_Id = x.User_Id });
questionAnswers.AddRange(Q2);
questionAnswers.AddRange(Q4);
questionAnswers.AddRange(Q8);
questionAnswers.GroupBy (a => a.QuestionNumber).Dump();
public class Answer
{
public int QuestionNumber {get;set;}
public string AnswerText {get;set;}
public string User_Id {get;set;}
}
どうもありがとう :)