我正在寻找一个简单的解决方案来替代我的标准化垃圾方式来验证在尝试检索数据之前是否存在记录.目前,每当我调用一种方法时,我都会做一些事情
private Record DoSomething(int id) { if(data.Records.Count(q=>q.Id==id) > 0) { return data.Records.First(q=>q.Id==id); } return null; }
解决方法
有很多干净的方法来处理这个.如果你想要的第一个记录对应的id你可以说:
Record record = data.Records.FirstOrDefault(r => r.Id == id); if(record != null) { // record exists } else { // record does not exist }
如果你只想知道这样的记录是否存在:
return data.Records.Any(r => r.Id == id); // true if exists
如果你想要有多少这样的记录存在:
return data.Records.Count(r => r.Id == id);
如果你想要所有这样的记录的枚举(IEnumerable< Record>):
return data.Records.Where(r => r.Id == id);