其它运算
此外Obase还支持Reverse,DefaultOrEmpty,Cast,OfType方法,他们均与Linq的方法所得出结果相一致。
//排序后倒置
var orderResult = context.Beans.OrderBy(p => p.DecimalNumber).Reverse().ToList();
Console.WriteLine("RunResult:");
foreach (var item in orderResult) Console.WriteLine($"{item}");
得到的结果是按照DecimalNumber倒置的对象集合。
//查找不存在的对象
var defaultIfEmptyResult =
context.Beans.Where(p => p.IntNumber < 0).DefaultIfEmpty().ToList();
Console.WriteLine("RunResult:");
Console.WriteLine($"Object is NULL - {defaultIfEmptyResult.Count} - {defaultIfEmptyResult[0] is null}");
得到的是一个内含null的集合。 这里我们先定一个空的接口IModel,并且让Bean实现此接口,那么我们就可以对其进行转换:
//进行转换
var castResult = context.Beans.Where(p => p.Bool).Cast<IModel>().ToList();
得到的是一个IModel接口的集合。
//进行转换
var ofTypeResult = context.Beans.Where(p => p.Bool).OfType<IModel>().ToList();
这里过滤后,得到的是一个IModel集合,且与源集合的个数一致。