Skip to main content

其它运算

此外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集合,且与源集合的个数一致。