首先先来扯一下,这篇博文是我第一次写的,主要是我的一些摘录,希望对大家有所帮助。
Linq的基础
1 Table1TableAdapter adapter = new Table1TableAdapter();2 /*3 强类型DataSet与Var.Database1DataSet.Table1DataTable dt = adapter.GetData();4 强类型DataSet与Var.Database1DataSet.Table1Row row = dt[0];5 */6 var dt = adapter.GetData();7 var row = dt[0];8 var aa = row.aa;
排序,分组
orderby person.Age descending
1 int[] values = { 1, 2, 5, 2, 3, 5, 5, 3, 4, 3, 3 };2 var result = from i in values3 //按i进行排序,g表示分组4 group i by i into g5 select g.Key;
扩展方法
下面的方法都是IEnumerable<T>的扩展方法:
Average计算平均值; Min最小元素;Max最大元素;Sum元素总和; Count元素数量;
Concat连接两个序列;//相当于sql的Unoin all
Contains序列是否包含指定元素;
Distinct取得序列中的非重复元素;
Except获得两个序列的差集;
Intersect获得两个序列的交集;
First取得序列第一个元素;
Single取得序列的唯一一个元素,如果元素个数不是1个,则报错;
FirstOrDefault 取得序列第一个元素,如果没有一个元素,则返回默认值;
Linq只能用于范型的序列,IEnumerable<T>,对于非范型,可以用Cast或者OfType
IEnumerable的方法:
Cast<TResult>:由于Linq要针对范型类型操作,对于老版本.Net类等非范型的IEnumerable序列可以用Cast方法转换为范型的序列。ArrayList l; IEnumerable<int> il = l.Cast<int>();
OfType<TResult>:Cast会尝试将序列中所有元素都转换为TResult类型,如果待转换的非范型序列中含有其他类型,则会报错。OfType则是只将序列中挑出指定类型的元素转换到范型序列中。
新闻热点
疑难解答