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

查詢操作中的類型關系 (LINQ)

查詢操作中的類型關系 (LINQ)

若要有效編寫查詢,您應該了解完整的查詢操作中的變量類型是如何全部彼此關聯的。如果您了解這些關系,就能夠更容易地理解文檔中的 LINQ 示例和代碼示例。另外,還能了解在使用 var 隱式對變量進行類型化時的后臺操作。

LINQ 查詢操作在數據源、查詢本身及查詢執行中是強類型的。查詢中變量的類型必須與數據源中元素的類型和 foreach 語句中迭代變量的類型兼容。此強類型保證在編譯時捕獲類型錯誤,以便可以在用戶遇到這些錯誤之前更正它們。

為了演示這些類型關系,下面的大多數示例對所有變量使用顯式類型。最后一個示例演示在您利用使用 var 的隱式類型時,如何應用相同的原則。

不轉換源數據的查詢

下圖演示不對數據執行轉換的 LINQ to Objects 查詢操作。源包含一個字符串序列,查詢輸出也是一個字符串序列。

1、數據源的類型參數決定范圍變量的類型。

2、選擇的對象的類型決定查詢變量的類型。此處的 name 為一個字符串。因此,查詢變量是一個 IEnumerable。

3、在 foreach 語句中循環訪問查詢變量。因為查詢變量是一個字符串序列,所以迭代變量也是一個字符串。

轉換源數據的查詢

下圖演示對數據執行簡單轉換的 LINQ to SQL 查詢操作。查詢將一個 Customer 對象序列用作輸入,并只選擇結果中的 Name 屬性。因為 Name 是一個字符串,所以查詢生成一個字符串序列作為輸出。

1、數據源的類型參數決定范圍變量的類型。

2、select 語句返回 Name 屬性,而非完整的 Customer 對象。因為 Name 是一個字符串,所以 custNameQuery 的類型參數是 string,而非 Customer。

3、因為 custNameQuery 是一個字符串序列,所以 foreach 循環的迭代變量也必須是 string。

下圖演示稍微復雜的轉換。select 語句返回只捕獲原始 Customer 對象的兩個成員的匿名類型。

1、數據源的類型參數始終為查詢中的范圍變量的類型。

2、因為 select 語句生成匿名類型,所以必須使用 var 隱式類型化查詢變量。

3、因為查詢變量的類型是隱式的,所以 foreach 循環中的迭代變量也必須是隱式的。

讓編譯器推斷類型信息

雖然您應該了解查詢操作中的類型關系,但是您也可以選擇讓編譯器為您執行全部工作。關鍵字 var 可用于查詢操作中的任何局部變量。下圖與前面討論的第二個示例完全等效。唯一的區別是編譯器將為查詢操作中的各個變量提供強類型:

it知識庫查詢操作中的類型關系 (LINQ),轉載需保留來源!

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

主站蜘蛛池模板: 第一次处破女18分钟免费 | 女生扒开下面 | 翁公吮她的花蒂和奶水 | 好大太快了快插穿子宫了 | 国内免费视频成人精品 | 国产亚洲欧美日韩综合综合二区 | 国产免费麻传媒精品国产AV | 中文字幕a有搜索网站 | 亚洲成在人线视频 | 最新无码国产在线视频 | 亚洲人成77777 | 亚洲精品天堂在线观看 | 囯产少妇BBBBBB高潮喷水一 | 日韩精品一区二区三区AV在线观看 | 欧美一区二区视频高清专区 | 亚洲欧洲精品成人久久曰影片 | 久久久97人妻无码精品蜜桃 | 国产三级在线精品男人的天堂 | 女同给老师下媚药 | 97影院理论午夜伦不卡偷 | 全黄H全肉细节文NP 全黄h全肉细节全文 | 激情欧美日韩一区二区 | 麻豆免费观看高清完整视频 | 色多多污污版免费下载安装 | 超碰国产视频免费播放 | 亚洲欧美日本国产在线观18 | 国产色欲一区二区精品久久呦 | 伊人久久99热这里只有精品 | 久青草国产在线观看视频 | 亚洲一区综合图区 | 9久久免费国产精品特黄 | 亚洲成人黄色片 | 亚洲国产日韩a精品乱码 | japanese幼儿videos| 狠狠色狠色综合曰曰 | a久久99精品久久久久久蜜芽 | 国产色情短视频在线网站 | 老司机亚洲精品影院在线观看 | 欲乱艳荡少寡妇全文免费 | 老师好爽你下面水好多视频 | 亚洲无碼网站观看 |