zoukankan      html  css  js  c++  java
  • LINQ TO LIST<T> 合并列表

    • 需求:

    针对如下列表,把四个直辖市置顶排序

    1100 北京 2301 哈尔滨 3301 杭州 3100 上海 4403 深圳 2201 长春 4301 长沙 3204 常州 5101 成都 1200 天津

    3202 无锡 4201 武汉 4101 郑州 5000 重庆 3703 淄博

    • 方法:

    (一般处理)

    建立两个列表,一个列表用于存储四个直辖市;一个列表用于存储其他城市

    Code:

    代码
    Var dbContent = dbContext.GetCityList();
    Var topCityIDList = new int[] {1100,3100,1200,500};
    T t1 = dbContent.FindAll(delegate(Entity e){
           Return topCityIDList.Contains(e.CityID);
    });

    dbContent.RemoveAll(delegate(Entity e){
           Return topCityIDList.Contains(e.CityID);
    });

    T list = 使用for把t1和dbContent的结果进行合并。

    这种方法可以解决问题,但是代码量不少啊。

    为了简化代码量,我们可以直接用LINQ进行操作。

    代码
    public T GetCityList (Int32 price) {
    T t = dbContext.GetCityList ( price );

    var query = t.Where ( p => ( new int[] { 1100 , 3100 , 1200 , 5000 } ).Contains ( p.CityID ) )
                 .OrderBy ( o => o.CityName )
                 .Union ( t );
    return query.ToList() as T;
    }
    • 结果:

    image

  • 相关阅读:
    C++之STL总结精华笔记
    [转]asp.net使用uploadify上传出现的IO Error问题
    $.post()参数及返回值
    用CSS3.0画圆
    C# 用代码返回上一页
    用js获取cookie
    html页面的局部刷新
    在Asp.Net中使用amChart统计图
    内存中DataTable去除重复行
    .net中对HTTP请求的两种请求:Get和Post的操作
  • 原文地址:https://www.cnblogs.com/RuiLei/p/1661233.html
Copyright © 2011-2022 走看看