精品欧美一区二区三区在线观看 _久久久久国色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ù)棧公眾號

亚洲伊人成人网| 超碰男人的天堂| 亚洲第一图区| 99久久免费视频.com| 国产精品扒开腿做爽爽爽视频| 国产综合精品在线| 精品国产亚洲日本| 欧美性猛xxx| 在线播放 亚洲| 午夜影院在线视频| 视频一区二区不卡| 欧美高清视频免费观看| 九九热免费在线| 视频一区中文字幕精品| 91福利视频网站| 大荫蒂性生交片| av电影在线观看| 99久久国产综合精品女不卡| 国产欧美日韩精品在线观看| 91久久国产视频| 国产电影一区二区在线观看| 日韩精品亚洲元码| 性高潮久久久久久| 日本成人在线网站| 日韩欧美国产一区二区| 日本a级片在线播放| 国产粉嫩一区二区三区在线观看| 国产成人免费视频网站高清观看视频| 国产精品99久久久久久久久久久久| 精品无码人妻一区二区三| 日韩成人精品一区| 亚洲美女激情视频| 性欧美18—19sex性高清| 日本在线一区二区| 欧美视频一区二区三区在线观看| 青青草国产精品视频| 中文字幕在线观看网站| 国产欧美日韩另类视频免费观看| 国产精品国产精品| 精品国产亚洲一区二区麻豆| 精品亚洲免费视频| 国产精品丝袜高跟| 中文区中文字幕免费看| 首页亚洲欧美制服丝腿| 91精品成人久久| 日本少妇裸体做爰| 在线日韩电影| 97视频在线观看视频免费视频| 免费又黄又爽又色的视频| 中文精品久久| 欧美成人手机在线| 国产精品久久久精品四季影院| 日韩一区亚洲二区| 日韩在线欧美在线| 亚洲精品自拍视频在线观看| 精品国精品国产自在久国产应用| 一本一道久久a久久精品逆3p| 毛片网站免费观看| 亚洲黄页网站| 亚洲日韩欧美视频| 99久久99久久精品免费看小说.| 精品香蕉视频| 中文字幕久久亚洲| 四虎影视1304t| 亚洲精品tv久久久久久久久久| 久久久999国产| 黄色在线观看免费| 在线观看亚洲| 国产999精品| 少妇又紧又色又爽又刺激视频 | 成年人午夜免费视频| 黑人另类精品××××性爽| 精品久久久久久久久久久久久久| 狠狠爱免费视频| 成人免费毛片嘿嘿连载视频…| 欧美卡1卡2卡| 成年人小视频在线观看| 免费成人网www| 日韩一区二区三区xxxx| 欧美日韩免费做爰视频| 在线一区免费观看| 国产精品久久久久久久av大片| 国产一区二区三区中文字幕| 国产福利电影一区二区三区| 精品综合在线| 免费黄网在线观看| 香蕉成人啪国产精品视频综合网 | 久久er精品视频| 国产aⅴ精品一区二区三区黄| 四虎在线观看| 中文字幕在线一区免费| 国产九九九九九| 青青热久免费精品视频在线18| 在线电影一区二区三区| 亚洲精品中文字幕在线播放| 欧美色图国产精品| 欧美激情精品久久久久久蜜臀 | 欧美tickling网站挠脚心| 国产又爽又黄无码无遮挡在线观看| 欧美岛国激情| 69久久夜色精品国产69| 国产乱叫456在线| 久久午夜羞羞影院免费观看| 色撸撸在线观看| 成人勉费视频| 精品国精品自拍自在线| 成人一级片免费看| 亚洲欧美日韩一区在线观看| 91在线免费视频| 国家队第一季免费高清在线观看| 亚洲精品乱码久久久久久久久 | 日韩在线观看免费| 亚洲欧美精品一区二区三区| 国产一区二区电影| 日韩久久精品一区二区三区| a天堂资源在线| 91精品国产美女浴室洗澡无遮挡| 亚洲精品午夜视频| 国产婷婷精品| av免费观看久久| 蜜桃av在线免费观看| 91久久国产最好的精华液| 成年女人免费视频| 欧美激情亚洲| 91久久精品国产91性色| 99视频在线观看地址| 欧美色欧美亚洲高清在线视频| 久久久久亚洲av无码专区首jn| 欧美残忍xxxx极端| 国产精品狼人色视频一区| 视频国产一区二区三区| 亚洲国产精品欧美一二99| 免费黄频在线观看| 欧美岛国激情| 国产美女久久精品香蕉69| 久蕉在线视频| 色综合色综合色综合色综合色综合| 亚洲欧美日韩偷拍| 亚洲国产午夜| 精品国产一区二区三| 欧美人体视频xxxxx| 欧美一区二区在线播放| 成人性生活毛片| 狠狠狠色丁香婷婷综合久久五月| 亚洲欧洲中文| 久久女人天堂| 久久久久www| 精品国产无码一区二区三区| 樱花影视一区二区| 中文字幕99页| 亚洲麻豆一区| 精品欧美日韩| 中文字幕在线直播| 国产亚洲一区精品| 中国黄色一级视频| 国产精品欧美极品| 图片区乱熟图片区亚洲| 最新国产精品| 国产精品美女诱惑| 老司机2019福利精品视频导航| 亚洲男人的天堂网站| 日韩欧美国产另类| 成人欧美一区二区三区小说| 佐山爱在线视频| 伊人影院久久| 日韩av一区二区三区在线观看| 成人影院在线免费观看| 久久久精品国产网站| 蜜臀久久久久久999| 欧美日韩一二三四五区| 日本人亚洲人jjzzjjz| 国产乱妇无码大片在线观看| 久久国产精品网| 欧美猛男同性videos| 国产日韩专区在线| 成人性生交大片免费看网站 | 美女搡bbb又爽又猛又黄www| 男女av一区三区二区色多| 亚洲欧洲精品在线| 国产精东传媒成人av电影| 国产mv免费观看入口亚洲| 日本成a人片在线观看| 精品国产乱码久久| 免费观看日批视频| 夜夜精品视频一区二区| 熟女俱乐部一区二区视频在线| 蜜桃精品视频在线| 国产主播自拍av| 欧美日韩国产一区二区三区不卡 | 欧美电影《轻佻寡妇》| 国产精品久久国产三级国电话系列| 午夜影院在线观看国产主播| www.精品av.com| 五月激情婷婷综合| 8x福利精品第一导航| 亚洲精品男人天堂| 亚洲乱码国产乱码精品精98午夜| a视频免费观看| 国产在线精品不卡| 久久精品视频91| 国产精品大片| 亚洲综合首页| 亚洲高清极品| 国产亚洲一区在线播放| 四虎国产精品免费久久5151| 68精品久久久久久欧美| 色呦呦在线资源| 色哟哟亚洲精品一区二区| 香蕉视频网站在线| 精品久久久久久无| 国产伦精品一区二区三区视频痴汉| 欧美性高潮在线| 精品少妇theporn| 亚洲欧美一区二区在线观看| 中文字幕免费高清| 99久久久久久| 韩国三级hd两男一女| 黄色小说综合网站| 国产又大又黄又粗又爽| 久久国产主播| 国产妇女馒头高清泬20p多| 亚洲成人二区| 一区二区三区av| 欧美在线观看视频一区| 免费成人av网站| 麻豆一区二区麻豆免费观看| **亚洲第一综合导航网站| 免费一区二区三区四区| 国产成人在线一区二区| 性爽视频在线| 97国产精品视频| 182在线视频观看| 久久久久久尹人网香蕉| 啪啪免费视频一区| 欧美激情精品久久久久久大尺度| av中文字幕在线播放| 久久精品99无色码中文字幕| 婷婷在线视频| 日韩在线国产精品| 蜜桃视频网站在线观看| 久久韩剧网电视剧| av网址在线免费观看| 久久精品国产久精国产思思| 日韩子在线观看| 久久亚洲精品小早川怜子66| h网站久久久| 欧美精品在线免费播放| 污污网站在线看| 欧美激情国内偷拍| av最新在线| 欧洲中文字幕国产精品| 欧美日韩美女| 国产精品国语对白| 欧美极品在线| 91成人伦理在线电影| 一区二区在线免费播放| 国产精品伊人日日| 猛男gaygay欧美视频| 人禽交欧美网站免费| 精品美女久久| 一区二区三区四区| 欧美久久一区| 国产人妻777人伦精品hd| 久久福利毛片| 国产精品自在自线| 国产成人亚洲综合a∨婷婷| wwwxx日本| 国产亚洲福利社区一区| 三级黄色录像视频| 亚洲国产精品影院| 99久久久无码国产精品免费蜜柚| 欧美色视频在线| 精品久久久久成人码免费动漫| 亚洲国产黄色片| 国产小视频免费在线网址| 久久久国产精品一区| gogo久久| 国产精品日韩在线播放| 亚洲精品在线a| 欧美xxxx黑人又粗又长密月| av中文一区| 日本a在线天堂| 翔田千里一区二区| 在线一区二区不卡| 91玉足脚交白嫩脚丫在线播放| 人妻熟人中文字幕一区二区| 一区二区三区在线观看欧美| 在线免费黄色av| 欧美二区乱c少妇| 青青草超碰在线| 蜜臀久久99精品久久久久久宅男| 黄视频免费在线看| 成人黄色av免费在线观看| 欧美一级全黄| 中文字幕在线亚洲三区| 国产精品日本| a级大片免费看| 国产精品无人区| 日韩成人免费观看| 日韩一区二区三区在线观看 | 久久久久国产精品麻豆ai换脸| 日韩影院一区二区| 欧美在线你懂得| 色欲av永久无码精品无码蜜桃| 色偷偷噜噜噜亚洲男人的天堂| 亚洲优女在线| 51蜜桃传媒精品一区二区| 精品久久久久久久| 日本韩国欧美在线观看| 国产在线精品视频| 色www亚洲国产阿娇yao| 狠狠综合久久av一区二区小说| 99这里有精品视频| 视频在线观看一区二区| 欧美电影免费看| 国产自产精品| 欧美日韩国产精品一区二区亚洲| 超碰在线公开97| 久久亚洲综合av| 日韩激情在线播放| 日韩精品一区二区三区在线观看| 午夜国产福利在线| 国产精品人成电影在线观看| 免费一区二区| 国产伦精品一区二区三区四区视频_ | 中文字幕欧美日韩一区| 一级黄色免费网站| 亚洲国产精品电影| 黑人玩欧美人三根一起进| 亚洲精品欧美日韩专区| 久久综合国产| 亚洲精品午夜在线观看| 国产免费久久精品| 99re热视频| 一区二区在线免费视频| 美女18一级毛片一品久道久久综合| 国产丝袜不卡| 日韩视频一区| 在线精品一区二区三区| 婷婷国产v国产偷v亚洲高清| 天天干在线观看| 97不卡在线视频| 日韩中文av| 青青青在线播放| 久久免费国产精品| 青青操免费在线视频| 日韩精品在线观看一区| 中文字幕成在线观看| 欧美精品七区| 秋霞影院一区二区| 国产91在线播放九色| 666欧美在线视频| 国产精品一卡二卡三卡| 成人av影视在线| 日韩午夜在线电影| 欧美老熟妇乱大交xxxxx| 色94色欧美sute亚洲线路一ni| 免费a在线观看| 国产精品视频网| 伊人情人综合网| 中文字幕三级电影| 色婷婷综合激情| 香蕉视频网站在线观看| 91免费视频国产| 亚洲精品三级| x88av在线| 欧美一级久久久| 国产自产自拍视频在线观看| 鲁鲁狠狠狠7777一区二区| 日韩电影免费在线| 黄色一级片中国| 日韩av在线网页| 国产精品久久久久久久久久齐齐| 国产精品av免费| eeuss国产一区二区三区| 五月婷婷激情视频| 久久久成人精品| 日韩精品丝袜美腿| www.精品在线| 亚洲午夜电影在线| av资源种子在线观看| 91入口在线观看| 久久一区精品| 免费中文字幕在线| 精品一区二区三区四区| 一级欧美视频| 波多野结衣家庭教师在线| 国产精品国产自产拍高清av| 亚洲乱色熟女一区二区三区| 日本一欧美一欧美一亚洲视频| 91超碰成人| 蜜桃av免费看| 欧美va在线播放| 欧美爱爱视频| 免费高清在线观看免费| 亚洲欧美日韩一区二区 | 久久精品久久久久久| 红杏aⅴ成人免费视频| 狠狠操狠狠干视频| 欧美日韩色婷婷|