当前位置: 首页 > news >正文

山东建设管理局官方网站网址大全浏览器

山东建设管理局官方网站,网址大全浏览器,手机端模板网站,免费海外网站建设场景 Java8新特性-Stream对集合进行操作的常用API: Java8新特性-Stream对集合进行操作的常用API_streamapi操作集合_霸道流氓气质的博客-CSDN博客 上面讲的是在Java中使用Stream中对集合的常用操作。 在C#中Linq是有对应的类似的api。 完整和详细的用法可自行查…

场景

Java8新特性-Stream对集合进行操作的常用API:

Java8新特性-Stream对集合进行操作的常用API_streamapi操作集合_霸道流氓气质的博客-CSDN博客

上面讲的是在Java中使用Stream中对集合的常用操作。

在C#中Linq是有对应的类似的api。

完整和详细的用法可自行查阅文档,下面记录使用过程中的一些非常规操作。

注:

博客:
霸道流氓气质的博客_CSDN博客-C#,架构之路,SpringBoot领域博主

实现

1、Where条件筛选

需要自定义筛选规则,筛选函数需要调用一些三方工具类

                    var keyList = keys.Where(key =>{CarVo car = redis.StringGet<CarVo>(key);PointF point = new PointF(Convert.ToSingle(car.x), Convert.ToSingle(car.y));bool result = GisHelper.isPointInPolygon(point, waitingRoomPoints);return result;});

比如这里是校验坐标是否在指定区域内,用到的GisHelper是工具类,附工具类实现

        public static bool isPointInPolygon(PointF point ,PointF[] points) {GraphicsPath myGraphicsPath = new GraphicsPath();Region myRegion = new Region();myGraphicsPath.Reset();myGraphicsPath.AddPolygon(points);myRegion.MakeEmpty();myRegion.Union(myGraphicsPath);//返回判断点是否在多边形里bool result = myRegion.IsVisible(point);return result;}

2、Select自定义映射规则,实现调用三方方法

模糊搜索到redis中的key的集合,遍历这些key,并映射到key对应的value的集合

                        var carVoList = keyList.Select(key =>{CarVo car = redis.StringGet<CarVo>(key);return car;})

这里用的方法可以参考如下连接redis并存取数据的实现

Winform/Csharp中使用StackExchange.Redis连接Redis存取数据并序列化对象/反序列化(支持redis key 模糊搜索):

Winform/Csharp中使用StackExchange.Redis连接Redis存取数据并序列化对象/反序列化(支持redis key 模糊搜索)_霸道流氓气质的博客-CSDN博客

3、OrderBy自定义排序规则,先按照实体的某个属性,再按照另一个属性

                        var carVoList = keyList.Select(key =>{CarVo car = redis.StringGet<CarVo>(key);return car;})//先按照车辆类型排序.OrderBy(a =>{//人车排在最前面if (a.carType.Equals("1")){return 1;}//指挥车排在第二位else if (a.carType.Equals("3")){return 2;}//其他车辆排在后面else{return 3;}})//其次按照车牌号字段排序.ThenBy(a => a.carNumber);

比如这里从redis中查询到数据之后,解析到对象,并先根据对象的carType进行排序,

如果类型为1则排在最前面,类型是3,排在第二优先级,其他的类型排在后面,然后

在每个类型中再按照车牌号这个字段排序。

这里的return 1,数字越小优先级越高。

4、Select映射时从一个对象,映射到另一个对象,并新增一个递增的序号字段

                int numberIndex = 1;var carVoListWithFixedData = carVoList.Select(carVo =>{ResultVo resultVo = new ResultVo{                     number = numberIndex++,carNumber = carVo.carNumber,};resultVo.team = "测试班组";resultVo.direction = "测试方向";return resultVo;});

5、linq select 左外连接

包含左边的表的所有行,如果右边表中某行没有匹配,该行内容为空NULL。

                            var query = from carVo in resultsjoin mail in mailList on carVo.carNumber equals mail.car_number into result1from result in result1.DefaultIfEmpty()select new ResultVo(carVo.number, carVo.team, carVo.direction, carVo.carNumber, result == default(BusMailList) ? String.Empty : result.driver_name);results = query.ToList();

这里以左边results的结果为主,results有多少条则最终会有多少条。

根据results中每个对象的car_number属性去匹配在mailList中与car_number相等的数据的driver_name属性,如果有则匹配显示,

没有则未空,并将最终结果映射到新的对象。

这里的BusMailList就是mailList的每个对象。

附这里的mailList集合的每个对象BusMailList的类

    public class BusMailList{public long binding_time { get; set; }public string car_number { get; set; }public string driver_name { get; set; }public string driver_number { get; set; }public int id { get; set; }public long update_time { get; set; }}

以及results集合的每个对象ResultVo的类

    class ResultVo{[Description("序号")]public int number { get; set; }[Description("班组")]public string team { get; set; }[Description("方向")]public string direction { get; set; }[Description("车号")]public string carNumber { get; set; }[Description("司机")]public string driver { get; set; }public ResultVo(){}public ResultVo(int _number, string _carNumber, string _driver){number = _number;carNumber = _carNumber;driver = _driver;}public ResultVo(int _number, string _carNumber){number = _number;carNumber = _carNumber;}public ResultVo( string _carNumber, string _driver){          carNumber = _carNumber;driver = _driver;}public ResultVo(int _number,string _team,string _direction,string _carNumber,string _driver){number = _number;team = _team;direction = _direction;carNumber = _carNumber;driver = _driver;}}

http://www.laogonggong.com/news/1296.html

相关文章:

  • 企业主体负责人和网站负责人百度seo哪家公司好
  • 网站建设公司伟置杭州小程序建设公司
  • 网站建设计划表南京seo推广公司
  • 河北疫情最新消息2023福州短视频seo
  • 银川网站建设一条龙2022网站seo
  • 营销型网站建设需要有什么功能网站seo的优化怎么做
  • 文登城乡建设局网站西安网络seo公司
  • 微信社群运营工具郑州搜索引擎优化公司
  • 建设银行广州招聘网站杭州优化外包哪里好
  • 自己做网站收费么如何建立自己的网站平台
  • 衡水做网站希爱力副作用太强了
  • php 关闭网站百度指数数据下载
  • 鲜花网站数据库建设咸阳网站建设公司
  • 网站建设哪家好 思创网络免费下载百度一下
  • php做网站示例百度seo站长工具
  • 怎么做扫二维码就可以进入网站我想做百度推广
  • 支付行业的网站怎么做苏州百度 seo
  • 名字做藏头诗的网站爱站工具包
  • 徐州做网站的公司有哪些山西百度推广开户
  • 有专业做淘宝网站的美工吗郑州网站优化公司
  • 自己做炉石卡牌的网站百度帐号登录
  • 济南网站定制互联网营销推广怎么做
  • 朝阳企业网站建设方案百度下载并安装
  • 电子商务网站建设与管理课后题深圳网络推广营销
  • 网站底部关键词廊坊seo排名
  • 如皋建设医院网站5118关键词挖掘工具
  • 深圳企业网站制作外贸营销型网站建设公司
  • 赣州网站建设公司qq推广链接
  • 温州网站建设小公司百度投诉电话人工客服24小时
  • 嘉兴免费做网站百度搜索一下就知道