我遇到了一个常见的问题,我想知道更好的方法。
说我有一个列表或一组int:
var ids = new List<int>();
// pretend I populate 5 or 6 integers
我从数据库中提取了一类汽车:
var cars = carRepo.GetAll();
当然,让我们说Car类有Id属性。它感觉好像我应该能够做更好的事情,而不仅仅是循环汽车并检查它。就像有某种花哨的Aggregate()或Select()语句可以得到我想要的。在那儿?这是我一直遇到的非常常见的事情。
答案 0 :(得分:1)
通过比较不确定您的意思,但如果您想在cars
集合中查看List<int>
中的所有ID,则可以执行此操作
var result = cars.All(c => ids.Contains(c.Id));
答案 1 :(得分:1)
所有都是布尔检查,集合中的所有项目都匹配你想要的地方......
carRepo.Where(c => ids.Contains(c.Id));
答案 2 :(得分:1)
您可以执行一个简单的Inner Join来选择ID列表中所有带ID的车辆:
var query = from car in cars
join id in ids on car.Id equals id
select car;
答案 3 :(得分:0)
var filtered = cars.Where(car => ids.Contains(car.Id));
答案 4 :(得分:0)
例如:
bool isEqual = ids.Count == cars.Count && cars.All(car=>ids.Contains(car.Id));