List.AddRange()
存在,但IList.AddRange()
没有
这让我很奇怪。这背后的原因是什么?
答案 0 :(得分:61)
因为界面应该易于实现,并且不包含“厨房以外的所有东西”。如果您添加AddRange
,则应添加InsertRange
和RemoveRange
(对称)。一个更好的问题是为什么IList<T>
接口的扩展方法与IEnumerable<T>
接口类似。 (就地Sort
,BinarySearch
,...的扩展方法很有用)
答案 1 :(得分:3)
对于那些希望拥有IList上的“ AddRange”,“ Sort”,...扩展方法的人,
下面是UserVehicle::with('vehicle')->whereHas('user', function($query){
$query->where('id', 5);
})->get();
扩展方法:
AddRange
我创建了一个小型库来执行此操作。与在每个项目上重做其扩展方法相比,我发现它更实用。
某些方法比List慢,但它们确实可以完成工作。
这是让他们感兴趣的GitHub: