四虎精品视频-四虎精品成人免费网站-四虎黄色网-四虎国产视频-国产免费91-国产蜜臀97一区二区三区

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

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

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

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

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

不轉(zhuǎn)換源數(shù)據(jù)的查詢

下圖演示不對數(shù)據(jù)執(zhí)行轉(zhuǎn)換的 LINQ to Objects 查詢操作。源包含一個字符串序列,查詢輸出也是一個字符串序列。

1、數(shù)據(jù)源的類型參數(shù)決定范圍變量的類型。

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

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

轉(zhuǎn)換源數(shù)據(jù)的查詢

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

1、數(shù)據(jù)源的類型參數(shù)決定范圍變量的類型。

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

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

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

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

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

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

讓編譯器推斷類型信息

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

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

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

主站蜘蛛池模板: 乱世伦情 电影| 航班危机电影| 蒋一铭| 最佳嫌疑人电影免费观看| 李志毅| 丹尼尔·吉里斯| 宁静是什么民族| 北京卫视今天全部节目表| 山东教育电视台直播在线观看| 火柴人游戏机怎么做| 覃宏| 大森南朋| 钱串子图片| 补铁最好水果第一名| 电锯狂魔| 根深蒂固韩国电影| 皇家趣学院免费观看全集完整版| 礼记二则原文和译文| 现代企业管理| 丰满少妇a级片| s0hu搜狐| 王音棋的个人简历| 我不知道明天的道路歌词歌谱| 冷暖人间第一部| 佐藤亚璃纱| cctv16奥林匹克频道| 中医基础理论试题题库及答案| 色在线视频| 喂找谁呀 电影| 奇爱博士| p333的图片| 天国遥遥| 东北一家人第一部| 大师兄 电影| 绿野仙踪电影| 道德底线| 我和我的父辈 电影| 绝情电视剧| 欲望中的女人电影| 鬼谷子电视剧| 电影百度百科|