C# Linq常用方法介绍及示例

1.Where 根据谓词(逻辑)过滤一系列值

检查每个元素是否满足给定的逻辑条件,返回这些

满足条件的所有元素。

查找所有血量为0的敌人:

e:每个元素 e.Hp == 0:条件

enemies.Where<Enemy>(e => e.Hp == 0);

2.Select 将序列中的每个元素投影到新表单

将源类型中的每个元素通过筛选器转换为你所指定

的另一类型对象。

查找所有敌人的武器:

e:每个元素 e.GetWeapon():对应的新元素

enemies.Select<Enemy, Weapon>(e => e.GetWeapon());

3.OfType 根据指定类型筛选元素

在所有人物中查找队友:

characters.OfType<Friend>();

4.FirstOrDefault、LastOrDefault 返回序列中第一个/最后一个 满足条件的元素

如果没有找到这样的元素,则返回默认值。不带

OrDefault的方法在没找到元素时抛出异常。

查找一个攻击距离大于550且被击飞的敌人:

enemies.FirstOrDefault<Enemy>(e => e.AtkDis > 550 && e.State == State.Off);

5.Distinct 返回序列中不同的元素

删除相同的项,即去重。

将名字去重:

names.Distinct<string>();

6.Intersect、Union、Except 返回两个序列的交集/并集/差集

查找在列表1和列表2中都存在的名字:

nameList1.Union<string>(nameList2);

7.All、Any 判断序列中的所有元素/任意一个元素 是否满足某个条件

All方法在所有元素满足条件时返回True,Any方法在

只要有一个元素满足条件时就返回True。

序列中是否有奔驰:

cars.Any<Car>(e => e is Benz);

8.OrderBy 根据键对序列中的元素进行升序排序

通过元素的某一属性对元素排序。OrderByDescending

表示降序排序,ThenBy表示多级(次要条件)排序。

将扑克牌按点数排序后再按花色排序:

pokers.OrderBy<Poker, int>(e => e.Ranke).ThenBy<Poker, SuitType>(e => e.Suit);

9.Join 基于匹配的键将两个序列中的元素关联起来

查找外部序列中元素某个属性是否与内部序列元素的

某个属性相匹配,将所有匹配的元素合并成新对象序列。

查找既能自动关闭也能拖拽的窗口:

autoWindows.Join<AutoWindow, DragableWindow, string, AutoAndDragableWindow>(dragableWindows, a => a.ID, d => d.ID, (a, d) => new AutoAndDragableWindow { ID = a.ID });

10.Max、Min、Sum、Average 返回序列中的最大值、最小值、总值或平均值

查找最大的文件:

fileInfos.Max<FileInfo>(e => e.Length);

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值