LINQ TO LIST<T> 合并列表

  • 需求:

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

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

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

 

  • 方法:

(一般处理)

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

Code:

 

ExpandedBlockStart.gif 代码
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进行操作。

 

ExpandedBlockStart.gif 代码
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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值