文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>C#2008与.NET 3.5 高级程序设计读书笔记(24)-- LINQ API编程

C#2008与.NET 3.5 高级程序设计读书笔记(24)-- LINQ API编程

时间:2010-08-17  来源:钢铁心脏

1.LINQ to DataSet

语言集成查询 (LINQ) 查询适用于实现 IEnumerable<T> 接口或 IQueryable 接口的数据源。DataTable 类不实现任何一个接口,所以如果要使用 DataTable 作为LINQ 查询的 From 子句中的源,则必须调用 AsEnumerable 方法。

代码
// Fill the DataSet.
DataSet ds = new DataSet();
ds.Locale
= CultureInfo.InvariantCulture;
FillDataSet(ds);

DataTable orders
= ds.Tables["SalesOrderHeader"];

var query
=
from order
in orders.AsEnumerable()
where order.Field<bool>("OnlineOrderFlag") == true
select
new
{
SalesOrderID
= order.Field<int>("SalesOrderID"),
OrderDate
= order.Field<DateTime>("OrderDate"),
SalesOrderNumber
= order.Field<string>("SalesOrderNumber")
};

foreach (var onlineOrder in query)
{
Console.WriteLine(
"Order ID: {0} Order date: {1:d} Order number: {2}",
onlineOrder.SalesOrderID,
onlineOrder.OrderDate,
onlineOrder.SalesOrderNumber);
}

 如果在应用程序设计时已知 DataSet 的架构,则建议在使用 LINQ to DataSet 时使用类型化 DataSet。类型化 DataSet 是从 DataSet 中派生的类。因此,它继承 DataSet 的所有方法、事件和属性。此外,类型化 DataSet 还提供强类型方法、事件和属性。这意味着可以按名称而不使用基于集合的方法来访问表和列。这可使查询更简单、更具可读性。

代码
var query = from o in orders
where o.OnlineOrderFlag == true
select
new { o.SalesOrderID,
o.OrderDate,
o.SalesOrderNumber };

foreach(var order in query)
{
Console.WriteLine(
"{0}\t{1:d}\t{2}",
order.SalesOrderID,
order.OrderDate,
order.SalesOrderNumber);
}

 

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载