• List对象中的组合、查询、扩展


    var Pnts = segs.Select( c =>
                                                 pntTsLst.Where                                                            //根据条件组合另一个List, pntTsLst是一个List<KEYPOINT>
                                                 (d => d.KEYPOINT_UUID == c.END_POINT_ID)
                                                                                                                              .Select(
                                                                                                                                               k =>new { id=k.KEYPOINT_UUID,name=k.NAME + (k.DESIGNATOR.IsEmptyOrNull() ? "" : $"({k.DESIGNATOR})"),seq=c.SEQNUM+1 }  //从另一个List中取值并添加其他属性
                                                                                                                                          ).First()      //First非常重要,作用于where,把整个最外层括号中的数据类型变为属性,否则是个两重List结构                            
                                                 ).ToList();

    //Pnts 是一个自定义对象{id,name,seq} 的list

    //简单一点List转换的例子 Geoms是一个Geom(id,name,geo)的对象list

     Geoms = dic.Select(c => new Geom{ id=c.Key,geo=c.Value} ).ToList();

    或者,返回一个扩展的对象

    var lst = Pnts.Select(c => new {
                                                          keypt =pntTsLst.Where(d => d.KEYPOINT_UUID == c.id).First(),
                                                          seq =c.seq
                                                     }

                                     ).ToList();

    lst 是一个扩展对象{KEYPOINT,seq}的list

  • 相关阅读:
    【洛谷 P1896】[SCOI2005]互不侵犯(状压dp)
    【洛谷 P4289】[HAOI2008]移动玩具(搜索)
    【洛谷 SP283】NAPTIME
    【洛谷 P4342】[IOI1998]Polygon(DP)
    【洛谷 SP2878】Knights of the Round Table(双联通分量)
    【洛谷 P4168】[Violet]蒲公英(分块)
    【洛谷 P4180】【模板】严格次小生成树[BJWC2010](倍增)
    数学总结
    个人码风
    【洛谷 P3304】[SDOI2013]直径(树的直径)
  • 原文地址:https://www.cnblogs.com/mol1995/p/8275497.html
Copyright © 2020-2023  润新知