我有一个对象列表
class Answer
{
bool correct;
}
List<Answer> Answers = new List<Answer>();
在 linq 中有没有一种方法可以让我根据对象的属性来选择对象?
目前为止
Answer answer = Answers.Single(a => a == a.Correct);
但是没有效果
最佳答案
首先,Single
如果有多个元素满足条件,则抛出异常。其次,您的标准应该只检查 Correct
属性是否为 true
。现在,您正在检查 a
是否等于 a.Correct
(甚至不会编译)。
你应该使用 First
(如果没有这样的元素将抛出)或FirstOrDefault
(如果没有这样的元素,它将为引用类型返回 null
):
// this will return the first correct answer,
// or throw an exception if there are no correct answers
var correct = answers.First(a => a.Correct);
// this will return the first correct answer,
// or null if there are no correct answers
var correct = answers.FirstOrDefault(a => a.Correct);
// this will return a list containing all answers which are correct,
// or an empty list if there are no correct answers
var allCorrect = answers.Where(a => a.Correct).ToList();
关于c# - Linq 根据对象属性从列表中选择对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13230468/