Warning: Undefined array key "HTTP_REFERER" in /www/wwwroot/prod/www.enjoyasp.net/wp-content/plugins/google-highlight/google-hilite.php on line 58
基本 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只能用一个条件。
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.出处