天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

LINQ 查詢介紹

查詢是一種從數據源檢索數據的表達式。查詢通常用專門的查詢語言來表示。隨著時間的推移,人們已經為各種數據源開發了不同的語言;例如,用于關系數據庫的 SQL 和用于 XML 的 XQuery。因此,開發人員不得不針對他們必須支持的每種數據源或數據格式而學習新的查詢語言。LINQ 通過提供一種跨各種數據源和數據格式使用數據的一致模型,簡化了這一情況。在 LINQ 查詢中,始終會用到對象。可以使用相同的基本編碼模式來查詢和轉換 XML 文檔、SQL 數據庫、ADO.NET 數據集、.NET 集合中的數據以及對其有 LINQ 提供程序可用的任何其他格式的數據。

查詢操作的三個部分

所有 LINQ 查詢操作都由以下三個不同的操作組成:

  • 獲取數據源。
  • 創建查詢。
  • 執行查詢。

下面的示例演示如何用源代碼表示查詢操作的三個部分。為了方便起見,此示例將一個整數數組用作數據源;但其中涉及的概念同樣適用于其他數據源。本主題的其余部分也會引用此示例。

class IntroToLINQ
{
static void Main()
{
// The Three Parts of a LINQ Query:
// 1. Data source.
int[] numbers = new int[7] { 0, 1, 2, 3, 4, 5, 6 };

// 2. Query creation.
// numQuery is an IEnumerable<int>
var numQuery =
from num
in numbers
where (num % 2) == 0
select num;

// 3. Query execution.
foreach (int num in numQuery)
{
Console.Write(
"{0,1} ", num);
}
}
}

下圖顯示了完整的查詢操作。在 LINQ 中,查詢的執行與查詢本身截然不同;換句話說,如果只是創建查詢變量,則不會檢索任何數據。

數據源

在上一個示例中,由于數據源是數組,因此它隱式支持泛型 IEnumerable<(Of <(T>)>) 接口。這一事實意味著該數據源可以用 LINQ 進行查詢。在 foreach 語句中執行查詢,而 foreach 要求使用 IEnumerable 或 IEnumerable<(Of <(T>)>)。支持 IEnumerable<(Of <(T>)>) 或派生接口(如泛型 IQueryable<(Of <(T>)>))的類型稱為“可查詢類型”。

可查詢類型不需要進行修改或特殊處理就可以用作 LINQ 數據源。如果源數據還沒有作為可查詢類型出現在內存中,則 LINQ 提供程序必須以此方式表示源數據。例如,LINQ to XML 將 XML 文檔加載到可查詢的 XElement 類型中:

 

// Create a data source from an XML document.
// using System.Xml.Linq;
XElement contacts = XElement.Load(@"c:/myContactList.xml");

 

查詢

查詢指定要從數據源中檢索的信息。查詢還可以指定在返回這些信息之前如何對其進行排序、分組和結構化。查詢存儲在查詢變量中,并用查詢表達式進行初始化。為使編寫查詢的工作變得更加容易,C# 引入了新的查詢語法。

上一個示例中的查詢從整數數組中返回所有偶數。該查詢表達式包含三個子句:from、where 和 select。(如果您熟悉 SQL,您會注意到這些子句的順序與 SQL 中的順序相反。) from 子句指定數據源,where 子句應用篩選器,select 子句指定返回的元素的類型。LINQ 查詢表達式(C# 編程指南)一節中詳細討論了這些子句和其他查詢子句。目前需要注意的是,在 LINQ 中,查詢變量本身不執行任何操作并且不返回任何數據。它只是存儲在以后某個時刻執行查詢時為生成結果而必需的信息。有關在幕后是如何構建查詢的更多信息,請參見標準查詢運算符概述。

查詢執行

延遲執行

如前所述,查詢變量本身只是存儲查詢命令。實際的查詢執行會延遲到在 foreach 語句中循環訪問查詢變量時發生。此概念稱為“延遲執行”,下面的示例對此進行了演示:

 

//  Query execution. 
foreach (int num in numQuery)
{
Console.Write(
"{0,1} ", num);
}

it知識庫LINQ 查詢介紹,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 喜马拉雅听书免费版 | 国产成人精品区在线观看 | 国产全部视频列表支持手机 | 狠狠色狠狠色综合 | 蜜臀AV熟女人妻中文字幕 | 97碰成视频免费 | 国产成人无码一区AV在线观看 | 国产在线观看免费观看不卡 | 天天夜夜草草久久亚洲香蕉 | WWW夜片内射视频在观看视频 | 国产网红主播精品福利大秀专区 | 亚洲高清国产品国语在线观看 | 日日噜噜噜夜夜爽爽狠狠图片 | 一边喂奶一边做边爱 | 欧美激情社区 | 伦理片在线线手机版韩国免费观看 | 小泽玛丽av无码观看 | 日韩精品一区二区亚洲AV观看 | 久久99精国产一区二区三区四区 | 全黄H全肉细节文短篇 | 曰产无码久久久久久精品 | 极品色αv影院 | 男子扒开美女尿口做羞羞的事 | 国产一区二区精品视频 | 国语自产二区高清国语自产拍 | 被免费网站在线视频 | 99久久精品国产高清一区二区 | 91精品婷婷国产综合久久8 | silk118中文字幕无删减 | 国内精品国内自产视频 | 国产免费人成在线视频视频 | 中文字幕一区二区视频 | 四虎永久在线精品国产 | 欧美区 bt | 一区二区三区国产亚洲网站 | 亚欧洲乱码视频一二三区 | 电影内射视频免费观看 | 永久午夜福利视频一区在线观看 | 城中村快餐嫖老妇对白 | 精品AV亚洲乱码一区二区 | 97无码欧美熟妇人妻蜜桃天美 |