2013-04-23 90 views
0

我試圖編寫一個返回某個類型的所有對象的linq查詢。在linq查詢中返回特定類型的對象

如果我想要所有的轎車都是這樣的工作嗎?

Dim cars = From c In carFactory.GetAllcars() 
      Select car = carFactory.GetAuto(c.ID) 
      Where TypeOf (car) Is Sedan 
+1

你有一個奇怪的模型,如果你getAllcars()並且它返回一個類型獲得一個汽車對象,你必須在同一個工廠調用GetAuto。 – tster 2013-04-23 16:45:34

回答

5

這將工作,但返回類型仍然是IEnumerable(Of Car)

相反,你可以寫sequence.OfType(Of Sedan)();這會過濾掉非轎車返回IEnumerable(Of Sedan)

+0

我的視覺工作室無法識別關鍵字'序列'... – SkyeBoniwell 2013-04-23 16:47:02

+1

@ 999cm999:'sequence'是任何IEnumerable或LINQ查詢。 – SLaks 2013-04-23 16:49:25

2
 carFactory.GetAllcars().OfType<Sedan>().Select(car=>car.ID)