‘ADO.NET’ 分类下的所有文章
2013三月8

linq基本操作

ADO.NET 评论关闭

基本 LINQ 查询操作

一,linq to datatable
1,查询数量
using System.Linq;

 dt.AsEnumerable()
                .Count(row => row.Field<string>("Column-A") == "Y"
                           || row.Field<string>("Column-A") == "N");
DataTable的select只能用一个条件。

2,top 1
dtExtOperate.AsEnumerable().First(dr => dr.Field<string>("RoleID") == "1101021");
XML:

return xdoc.Descendants("Cache").First(u => u.Attribute("key") != null && u.Attribute("key").Value == Key).Attribute("value").Value;

3,

关键字 var :

    指示编译器根据初始化语句右侧的表达式推断变量的类型。 推断类型可以是内置类型、匿名类型、用户定义类型或 .NET Framework 类库中定义的类型。这样我们就可以在上述的LINQ表达式中 例如可简写为: var nums = from n in nums where .... orderby... select....

4,linq工具 http://www.linqpad.net/

5,linq延迟加载,在用的时候再执行

6,排重

// 
IEnumerable<DataRow> rows = dt.AsEnumerbale();
// 去重复
IEnumerable<DataRow> distinctRows = rows.Distinct(DataRowComparer.Default);

7,select many:选择多个输出列


string[] fullNames = { "Anne Williams", "John Fred Smith", "Sue Green" };
            IEnumerable<string> query = fullNames.SelectMany(name => name.Split());
            foreach (string name in query)
                Console.Write(name + "|"); // Anne|Williams|John|Fred|Smith|Sue|Green|

8,查询是否存在
dtExtOperate.AsEnumerable().Any(dr => dr.Field<int>("MenuID") == MenuID)

9.出处

image

 

image

 

image

 

image

 

image

 

image

 

image

 

image

 

image