简单来说,LinqTo Object就是对内存中的数据集合进行查询、过滤或其它操作。
string[] names = { "张三", "李四", "王五哥" };
//这句是最基本的linq语句
var names_ = from n in names where n.Length <= 2 select n;
foreach (var en in names_)
{
result += en + ",";
}
//result:张三,李四,
from n in names where n.Length <= 2 select n;
这句话的意思是:在集合names中找出长度大于等于2的项。
from..in ..
一个查询表达式的开始,指向一个数据源。
引用的数据源必须有一个IEnumerable, IEnumerable(T)类型,或IQueryable(T),如数组、List<T>、Dictionary<TKey,TValue>等。
此例中names为数据源,变量n为数据源中的一个元素。
where
条件语句,据此从数据源中筛选数据。后面紧跟布尔表达式,如 n.Length<=2
select:
指定返回结果。如可简单修改下上述代码为:
string[] names = { "张三", "李四", "王五哥" };
//这句是最基本的linq语句
var names_ = from n in names where n.Length <= 2 select "【"+n+"】";
foreach (var en in names_)
{
result += en + ",";
}
//result:【张三】,【李四】,
这时候,对返回结果进行了处理,就变成“【张三】,【李四】,”了