精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

使用LINQ查詢非泛型類型

開發(fā) 后端
在.NET Framework 2.0 引進(jìn)泛型之前,都是使用System.Collections namespace命名空間下的集合存儲對象。在.NET 2.0中,許多集合類紛紛實(shí)現(xiàn)了IEnumerable<T>接口而泛型化。但是,還有相當(dāng)部分的類沒有實(shí)現(xiàn)IEnumerable的泛型版 本。

LINQ能實(shí)現(xiàn)查詢泛型對象或者實(shí)現(xiàn)了IEnumerable接口的對象。然而,諸如ArrayList這樣的非泛型集合并沒有實(shí)現(xiàn)IEnumerable接口。接下來,讓我們看看,在這種情況下,如何使用LINQ查詢非泛型集合。

C#


 1public class Cars
 2{
 3public string CarMake { get;set;}
 4public string CarModel { get; set; }
 5public int Year { get; set; }
 6}
 7
 8
 9class Program
10{
11static void Main(string[] args)
12{
13    ArrayList carList = new ArrayList();
14    carList.Add(new Cars
15        {
16            CarMake="BMW", CarModel="BMW Art", Year=1978
17        });
18    carList.Add(new Cars
19        {
20            CarMake = "BMW", CarModel = "Coupe", Year = 1982
21        });
22    carList.Add(new Cars
23        {
24            CarMake = "Renault", CarModel = "Alpine", Year = 1972
25        });
26    carList.Add(new Cars
27        {
28            CarMake = "Porsche", CarModel = "Maisto", Year = 1976
29        });
30
31    var carQuery = from car in carList
32                   where car.CarMake == "BMW"
33                   select car;
34}
VB.net
 
 

 1Public Class CarsClass Cars
 2Private privateCarMake As String
 3Public Property CarMake()Property CarMake() As String
 4      Get
 5            Return privateCarMake
 6      End Get
 7      Set(ByVal value As String)
 8            privateCarMake = value
 9      End Set
10End Property
11Private privateCarModel As String
12Public Property CarModel()Property CarModel() As String
13      Get
14            Return privateCarModel
15      End Get
16      Set(ByVal value As String)
17            privateCarModel = value
18      End Set
19End Property
20Private privateYear As Integer
21Public Property Year()Property Year() As Integer
22      Get
23            Return privateYear
24      End Get
25      Set(ByVal value As Integer)
26            privateYear = value
27      End Set
28End Property
29End Class
30
31
32Friend Class ProgramClass Program
33Shared Sub Main()Sub Main(ByVal args() As String)
34      Dim carList As New ArrayList()
35      carList.Add(New Cars With {.CarMake="BMW", .CarModel="BMW Art", .Year=1978})
36      carList.Add(New Cars With {.CarMake = "BMW", .CarModel = "Coupe", .Year = 1982})
37      carList.Add(New Cars With {.CarMake = "Renault", .CarModel = "Alpine", .Year = 1972})
38      carList.Add(New Cars With {.CarMake = "Porsche", .CarModel = "Maisto", .Year = 1976})
39
40      Dim carQuery = _
41            From car In carList _
42            Where car.CarMake = "BMW" _
43            Select car
44End Sub
 

如上面的代碼所示,我們聲明Cars對象并將其填充到ArrayList集合當(dāng)中。并且使用類似LINQ查詢泛型集合的方法來查詢這個ArrayList集合。你認(rèn)為結(jié)果會如何?

當(dāng)然,上面的代碼并沒有通過編譯,原因是ArrayList并沒有實(shí)現(xiàn)IEnumerable接口導(dǎo)致不能使用LINQ進(jìn)行查詢。那么, 是否我們能妄下結(jié)論說LINQ不能查詢非泛型集合呢?那么那些返回ArrayList對象的類庫將何去何從?我們是否能巧妙地處理這些問題或者使用能返回 泛型集體的方法代替呢?在不改變特性的前提下,讓我們看看三個解決問題的小技巧。

方法一,顯式指定變量類型,該類型與集合中的對象類型必須一致。


通過顯式聲明變量類型進(jìn)行查詢,你可以將集合中的每個對象轉(zhuǎn)換成指定的對象。

C#
1    var cc = from Cars car in carList
2             where car.CarMake == "BMW"
3             select car;
VB.net

1      Dim cc = _
2            From car As Cars In carList _
3            Where car.CarMake = "BMW" _
4            Select car
 注意我們將轉(zhuǎn)變量car換成Cars

方法二,使用Cast方法


Cast方法可以將(實(shí)現(xiàn)IEnumerable)接口的)非泛型集合返回IEnumerable接口對象。一旦我們得到IEnumerable接口對象,我們就可以使用LINQ查詢了。

 

C#
1    var cc1 = from car in carList.Cast()
2              where car.CarMake == "BMW"
3              select car;

VB.net

1      Dim cc1 = _
2            From car In carList.Cast(Of Cars)() _
3            Where car.CarMake = "BMW" _
4            Select car

注意,方法一中的所介紹的方法與這種方法相似。

方法三,除了Cast運(yùn)算符,我們也可以使用OfType

OfType可以過濾集合中相同類型的元素,如果你的集合中包含了不同類型的元素。這個方法得到指定類型的元素對象。

C#

1    var cc2 = from car in carList.OfType()
2              where car.CarMake == "BMW"
3              select car;

VB.net

1      Dim cc2 = _
2            From car In carList.OfType(Of Cars)() _
3            Where car.CarMake = "BMW" _
4            Select car

3種方法的全部代碼如下所示

C#

Code
 1using System;
 2using System.Collections.Generic;
 3using System.Linq;
 4using System.Text;
 5using System.Collections;
 6
 7namespace QueryArraylistWithLINQ
 8{
 9public class Cars
10{
11public string CarMake { get;set;}
12public string CarModel { get; set; }
13public int Year { get; set; }
14}
15
16
17class Program
18{
19    static void Main(string[] args)
20    {
21        ArrayList carList = new ArrayList();
22        carList.Add(new Cars
23            {
24                CarMake = "BMW",
25                CarModel = "BMW Art",
26                Year = 1978
27            });
28        carList.Add(new Cars
29            {
30                CarMake = "BMW",
31                CarModel = "Coupe",
32                Year = 1982
33            });
34        carList.Add(new Cars
35            {
36                CarMake = "Renault",
37                CarModel = "Alpine",
38                Year = 1972
39            });
40        carList.Add(new Cars
41            {
42                CarMake = "Porsche",
43                CarModel = "Maisto",
44                Year = 1976
45            });
46
47
48        var cc = from Cars car in carList
49                 where car.CarMake == "BMW"
50                 select car;
51
52        var cc1 = from car in carList.Cast()
53              where car.CarMake == "BMW"
54              select car;
55
56        var cc2 = from car in carList.OfType()
57              where car.CarMake == "BMW"
58              select car;
59
60
61        foreach (Cars c in cc1)
62            Console.WriteLine(c.CarMake + "-" + c.CarModel);
63
64        Console.ReadLine();
65    }
66}
67}

VB.net

 1Imports System
 2Imports System.Collections.Generic
 3Imports System.Linq
 4Imports System.Text
 5Imports System.Collections
 6
 7Namespace QueryArraylistWithLINQNamespace QueryArraylistWithLINQ
 8Public Class CarsClass Cars
 9Private privateCarMake As String
10Public Property CarMake()Property CarMake() As String
11      Get
12            Return privateCarMake
13      End Get
14      Set(ByVal value As String)
15            privateCarMake = value
16      End Set
17End Property
18Private privateCarModel As String
19Public Property CarModel()Property CarModel() As String
20      Get
21            Return privateCarModel
22      End Get
23      Set(ByVal value As String)
24            privateCarModel = value
25      End Set
26End Property
27Private privateYear As Integer
28Public Property Year()Property Year() As Integer
29      Get
30            Return privateYear
31      End Get
32      Set(ByVal value As Integer)
33            privateYear = value
34      End Set
35End Property
36End Class
37
38
39Friend Class ProgramClass Program
40      Shared Sub Main()Sub Main(ByVal args() As String)
41            Dim carList As New ArrayList()
42            carList.Add(New Cars With {.CarMake = "BMW", .CarModel = "BMW Art", .Year = 1978})
43            carList.Add(New Cars With {.CarMake = "BMW", .CarModel = "Coupe", .Year = 1982})
44            carList.Add(New Cars With {.CarMake = "Renault", .CarModel = "Alpine", .Year = 1972})
45            carList.Add(New Cars With {.CarMake = "Porsche", .CarModel = "Maisto", .Year = 1976})
46
47
48            Dim cc = _
49                  From car As Cars In carList _
50                  Where car.CarMake = "BMW" _
51                  Select car
52
53            Dim cc1 = _
54                  From car In carList.Cast(Of Cars)() _
55                  Where car.CarMake = "BMW" _
56                  Select car
57
58            Dim cc2 = _
59                  From car In carList.OfType(Of Cars)() _
60                  Where car.CarMake = "BMW" _
61                  Select car
62
63
64            For Each c As Cars In cc1
65                  Console.WriteLine(c.CarMake & "-" & c.CarModel)
66            Next c
67
68            Console.ReadLine()
69      End Sub
70End Class
71End Namespace

【編輯推薦】

  1. 手把手教你用好LINQ to SQL
  2. 使用LINQ和ADO.NET創(chuàng)建Silverlight程序
  3. 詳解在ASP.NET中用LINQ實(shí)現(xiàn)數(shù)據(jù)處理
責(zé)任編輯:彭凡 來源: cnblogs
相關(guān)推薦

2009-09-08 16:36:10

LINQ查詢基于泛型類

2009-05-27 10:12:27

LINQ泛型字典Dictionary

2009-09-14 18:57:19

LINQ查詢

2009-09-14 14:01:21

LINQ泛型數(shù)據(jù)集

2010-05-17 09:34:46

LINQAjax

2011-04-13 09:16:55

泛型

2023-12-28 10:30:56

類型系統(tǒng)Rust

2021-09-29 18:17:30

Go泛型語言

2009-09-08 09:24:50

LINQ查詢

2022-06-19 22:54:08

TypeScript泛型工具

2009-08-24 14:51:25

C# 泛型泛型類型

2024-10-28 00:40:49

Go語法版本

2009-01-04 16:58:48

LINQ to XMLLINQXML

2013-03-20 09:27:33

C#泛型

2024-11-05 09:11:09

TypeScript開發(fā)者代碼

2024-01-09 09:27:57

Rust編程泛型

2023-01-05 17:13:28

TypeScript泛型組件

2022-04-15 09:55:59

Go 泛型Go 程序函數(shù)

2009-09-01 16:14:11

C#泛型

2009-09-10 13:24:36

Linq參數(shù)類型
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

国产人妖一区| 色久视频在线播放| 欧美阿v一级看视频| 精品国产免费一区二区三区香蕉 | 亚洲国产专区校园欧美| 国产婷婷成人久久av免费高清| 丁香婷婷激情网| 国产精品va在线观看视色| av网站免费线看精品| 国产精品亚洲一区二区三区| 国产91av视频| 久久影院一区| 亚洲精品一区二区在线| 性生活在线视频| 最新日韩一区| 天天综合天天综合色| 一区二区视频在线观看| 日韩电影网址| 成人免费毛片app| 国产欧美日韩中文字幕| 久久久午夜影院| 你懂的国产精品永久在线| 精品性高朝久久久久久久| 精产国品一二三区| 日韩欧美精品一区二区综合视频| 午夜电影一区二区三区| 青青在线免费视频| 91在线视频| 久久精品人人做人人综合 | 日韩av电影国产| 国产亚洲精品久久久久久打不开| 欧美hd在线| 亚洲性夜色噜噜噜7777| 国产美女视频免费观看下载软件| 欧美a在线观看| 欧美另类videos死尸| 国产97色在线 | 日韩| 两个人看的在线视频www| 亚洲精品日日夜夜| 一本色道久久综合亚洲二区三区 | 久久久久久久精| 国产一区二区视频在线免费观看| 国产免费黄色录像| 精油按摩中文字幕久久| 国产精品日韩专区| 无码无套少妇毛多18pxxxx| 亚洲一区中文| 欧美性受xxx| 久久久久久在线观看| 免费亚洲视频| 国产成人精品在线| 国产又粗又猛又爽又| 久久亚洲国产精品一区二区| 国产成+人+综合+亚洲欧洲| 国产精品视频久久久久久久| 亚洲作爱视频| 国产suv精品一区二区| 综合网在线观看| 日韩福利视频网| 国产精品视频99| 国产精品久久久久久久久毛片| 美女在线观看视频一区二区| 91免费观看国产| 91福利社在线观看| 欧美xxxxx在线视频| 日韩一区二区三区免费| 欧美三级电影一区| 亚洲欧美天堂在线| 亚洲1区在线| 亚洲精品按摩视频| 国产伦理片在线观看| 日韩免费久久| 欧美日韩爱爱视频| 综合激情网五月| 青青草国产成人99久久| 91影视免费在线观看| 色噜噜在线播放| 久久久久久99精品| 在线看视频不卡| 爱情岛论坛亚洲品质自拍视频网站| 亚洲一区二区在线免费看| 春日野结衣av| 日韩毛片免费看| 精品国产a毛片| 波多野结衣一本| 亚洲中无吗在线| 91国内在线视频| 亚洲熟妇无码久久精品| 国产福利91精品一区二区三区| 久久久久久亚洲精品不卡4k岛国| 国产黄在线播放| 亚洲一区二区视频| 激情网站五月天| jizz久久久久久| 亚洲高清久久网| 五月婷婷欧美激情| 好看的亚洲午夜视频在线| 国产z一区二区三区| 国产免费的av| 国产午夜一区二区三区| 欧美一区二区激情| 国产精品毛片久久久久久久久久99999999| 欧美一级xxx| 级毛片内射视频| 国产精品vip| 国产精品久久av| 涩爱av在线播放一区二区| 亚洲精品免费在线| 亚洲不卡视频在线| 激情小说亚洲色图| 精品国产依人香蕉在线精品| 国产精品久久久免费视频| 激情文学综合丁香| 欧美裸体网站| 2021天堂中文幕一二区在线观| 欧美日韩色一区| 永久免费看mv网站入口78| 激情欧美一区| 99精品欧美一区二区三区| 97人人在线| 在线观看一区二区精品视频| 久久久午夜精品福利内容| 91精品国产91久久久久久密臀| 国产激情久久久久| 水莓100在线视频| 亚洲成av人综合在线观看| 99日在线视频| 日本欧美国产| 国产精品18久久久久久麻辣| 午夜视频免费在线| 亚洲国产中文字幕在线视频综合| 男人午夜视频在线观看| 日韩久久精品| 国产精品看片资源| 风间由美一区| 色女孩综合影院| 国产av自拍一区| 久久免费黄色| 欧美精品久久久| 亚洲一区资源| 亚洲欧美日韩国产精品| 日本一级片免费看| kk眼镜猥琐国模调教系列一区二区| 国产又粗又长又爽视频| 精品国产第一国产综合精品| 久久精品免费电影| 国产一区二区三区中文字幕| 国产精品午夜在线观看| 亚洲视频在线观看一区二区三区| 国产毛片一区二区三区| 国产成人精品一区| 国模精品一区二区| 欧美性淫爽ww久久久久无| 免费黄色片网站| 免费观看成人av| 欧美精品一区二区性色a+v| 国产精品一区二区三区四区在线观看| 久久精品国产精品| 精品人妻伦一区二区三区久久| 亚洲精品视频一区二区| 老司机免费视频| 久久亚洲影院| 亚洲国产精品一区在线观看不卡 | 欧美日韩加勒比精品一区| 日本黄色动态图| 久久精品电影| 一区二区高清视频| 日韩欧美另类中文字幕| 91国产精品91| av中文资源在线| 在线播放日韩导航| 久久久久久天堂| 91美女片黄在线观看91美女| 15—17女人毛片| 亚洲视频电影在线| 久久国产精品久久| 久久不卡日韩美女| 欧美日韩高清在线观看| 亚洲 欧美 激情 另类| 欧洲人成人精品| 免费在线观看h片| 91在线国内视频| 天天干天天爽天天射| 欧美日韩国产欧| 久久综合色一本| 国产免费区一区二区三视频免费| 韩国视频理论视频久久| 95在线视频| 亚洲精品成人av| 一区二区日韩在线观看| 亚洲电影在线播放| 成年人视频软件| 成人av电影免费在线播放| 午夜视频你懂的| 亚洲视频中文| 一区二区三区四区在线视频| 精品视频在线你懂得| 国产精品久久久久影院日本| 91精选在线| 国产一区二区三区18| 丁香六月天婷婷| 欧美三级视频在线观看 | 在线视频你懂得一区二区三区| 精品国产精品国产精品| 国产亚洲一区二区三区| 91精品又粗又猛又爽| 精品伊人久久久久7777人| 久久免费视频3| 欧美精品一线| 中文字幕日韩精品一区二区| 日韩激情啪啪| 成人欧美一区二区三区在线观看| 高清av一区| 人人做人人澡人人爽欧美| 欧美巨大xxxx做受沙滩| 丝袜一区二区三区| 国产有码在线| 精品视频久久久| 蜜桃视频久久一区免费观看入口| 欧美精品乱码久久久久久| 99精品人妻国产毛片| 亚洲大片免费看| 免费三片在线播放| 亚洲欧美在线aaa| 婷婷色一区二区三区| 2020国产精品自拍| 国产性生活毛片| 国产91丝袜在线18| 日本成人在线免费| 国产精选一区二区三区| 天天色天天综合网| 麻豆传媒一区二区三区| 在线视频日韩一区 | 亚洲一区二区成人在线观看| 加勒比婷婷色综合久久| 亚洲天天做日日做天天谢日日欢 | 天堂av在线资源| 日韩av在线电影网| 日本精品久久久久| 亚洲第一页自拍| 婷婷色在线视频| 亚洲激情视频网站| 国产日韩中文字幕| 国产成人午夜| 另类图片亚洲另类| 91麻豆免费在线视频| 久久国产精品久久久久久| 国产区在线看| 久久99精品久久久久久琪琪| 伊人电影在线观看| 欧美国产日本在线| av影片在线| 4438全国亚洲精品在线观看视频| 亚洲欧洲高清| 国产精品精品国产| 久久精品超碰| 91成人理论电影| 在线精品国产亚洲| 国产精品视频免费观看| 日韩精品免费一区二区三区竹菊| 麻豆蜜桃91| 精品日本12videosex| 一区二区三区国| 欧美欧美全黄| 无码aⅴ精品一区二区三区浪潮 | 国产精品99久久久久久久久| 69堂免费精品视频在线播放| 国产一区私人高清影院| 日韩精品视频在线看| 国产精品永久入口久久久| 亚洲区小说区图片区qvod按摩 | 欧美a级片一区| 日韩av中文字幕第一页| 久久亚洲风情| 操人视频免费看| 91啪九色porn原创视频在线观看| 谁有免费的黄色网址| 亚洲乱码一区二区三区在线观看| 日本熟妇一区二区| 欧美三级视频在线播放| 二区三区在线视频| 伊人精品在线观看| 污视频在线看网站| 国产成人涩涩涩视频在线观看| 欧美另类激情| 精品不卡在线| 国产精品99在线观看| 777精品久无码人妻蜜桃| 久久综合影音| 韩国三级在线看| 国产女人aaa级久久久级| 欧美人妻一区二区| 欧美日韩在线一区| 91丨九色丨蝌蚪丨对白| 亚洲精品一区二区精华| 亚洲成人影院麻豆| 欧美在线观看日本一区| 国产999精品在线观看| 欧美激情专区| 亚洲二区精品| 蜜桃福利午夜精品一区| 久久久久免费观看| 欧美成人一区二区三区高清| 在线观看日韩av先锋影音电影院| wwwav网站| 日韩中文字幕不卡视频| 麻豆视频在线看| 97久草视频| 欧美国产一级| www.亚洲天堂网| 成人精品电影在线观看| 潘金莲一级黄色片| 欧亚洲嫩模精品一区三区| 日韩在线观看视频一区| 美日韩在线视频| 欧美啪啪网站| 日韩免费三级| 乱人伦精品视频在线观看| 91视频在线免费| 亚洲精品伦理在线| 国产精品视频无码| 少妇激情综合网| 写真福利精品福利在线观看| 玛丽玛丽电影原版免费观看1977 | 天堂在线中文字幕| 韩国一区二区电影| 高清精品视频| 国产曰肥老太婆无遮挡| 国产成人午夜99999| 国产大片免费看| 欧美丰满一区二区免费视频| 成人动漫视频在线观看免费| 日韩中文字幕| 免费成人深夜夜行网站视频| 美女视频黄久久| 免费一级suv好看的国产网站| 日本乱人伦一区| 丝袜+亚洲+另类+欧美+变态| 91国产中文字幕| 日韩精选在线| 久久久久狠狠高潮亚洲精品| 91麻豆swag| 一级黄色在线观看| 国产亚洲欧美日韩一区二区| 中文.日本.精品| 亚洲v国产v| 国产在线精品免费| 欧美成人国产精品高潮| 日韩一区二区视频| 免费网站在线观看人| 高清国产一区| 亚洲三级视频| 中文字幕在线观看网址| 精品久久久久久久久久久久久| 神马亚洲视频| 国产精品高清在线观看| 97国产精品| 免费人成视频在线播放| 亚洲伊人色欲综合网| 婷婷五月综合激情| 热久久免费视频精品| 黑丝美女一区二区| 国产又黄又猛的视频| 亚洲最大的成人av| 天堂8在线视频| 国产精品久久久精品| 97在线精品| 久久久久久婷婷| 在线亚洲一区观看| 成人福利在线观看视频| 国产精品久久波多野结衣| 亚洲一区日韩| 欧美性生给视频| 精品播放一区二区| 成人av观看| 黄频视频在线观看| 99久久精品国产精品久久| 免费av中文字幕| 精品中文字幕在线观看| 窝窝社区一区二区| 加勒比av中文字幕| 精品福利一区二区| 三区四区电影在线观看| 不卡视频一区| 蜜臀av亚洲一区中文字幕| 青青草偷拍视频| 国产一区二区三区在线播放免费观看| 2020国产精品小视频| 草草久久久无码国产专区| 国产精品亲子伦对白| 日韩一区二区三区在线观看视频| 国产精品视频网| 宅男噜噜噜66国产日韩在线观看| 青青青手机在线视频| 亚洲精品美女久久久久| 国产一区二区三区亚洲综合| 欧美xxxxx在线视频| 亚洲自拍偷拍网站| 91福利在线视频| 精品乱色一区二区中文字幕|