Tôi giả sử bạn đang nhận được ngoại lệ vì Single. Danh sách của bạn có thể có nhiều câu trả lời được đánh dấu là chính xác, đó là lý do tại sao Single
sẽ ném một ngoại lệ sử dụng First hoặc FirstOrDefault();
Answer answer = Answers.FirstOrDefault(a => a.Correct);
Ngoài ra nếu bạn muốn nhận được danh sách của tất cả các mục đánh dấu là chính xác bạn có thể thử:
List<Answer> correctedAnswers = Answers.Where(a => a.Correct).ToList();
Nếu kết quả mong muốn của bạn là Single
, thì sai lầm bạn đang làm trong truy vấn của bạn được so sánh một mục có giá trị bool. So sánh của bạn
a == a.Correct
sai trong tuyên bố. truy vấn duy nhất của bạn nên là:
Answer answer = Answers.Single(a => a.Correct == true);
Hoặc ngay như:
Answer answer = Answers.Single(a => a.Correct);
Cảm ơn vì lời giải thích –