C#中的Linq,很神奇的东西啊,花了点时间学了下,为了以后回忆,记录下。
现在比如我有一个List,如下定义。
public static List<AttackVO> attackValueList = new List<AttackVO>();
在AttackVO类中定义了id这个属性,为唯一表示符,现在要用这个表示符查找attackValueList中的一个实例。
按照传统程序的写法,我们或许需要写一个for循环,if判断,然而使用Linq我们可以用一行代码来搞定它。
首先,准备工作。
using System.Linq;
我们需要引入这个。
然后,实现
public static AttackVO GetAttackValue(int id)
{
return (from attack in attackValueList where attack.id == id select attack).First();
}
如何,十分简单吧。
稍稍说明下:
from A in B 指从B中将A提出,B可以为数组,也可以为像我一样的List,Queue之类。
where后为判断,这里我判断A的id是否为我想找的id。
Select 后为想返回的值这里我与函数返回值一致,如果需要其他处理可以返回其他值。