我想簡化這個問題,請耐心等待。我知道如何使用接口,但對於我特別在使用接口的情況,我不太清楚如何使用接口。這不是一個sql數據庫,我可以閉着眼睡着。從列表中返回一個列表<SomeType><AnotherType>
我有一個類型的東西是整體通用的列表,但在這個列表中的是一些子元素,是另一種類型。例如,汽車......以及每輛汽車內都有其他的東西,比如風格等,如轎車,轎跑車,敞篷車等等。可以有許多其他的「東西」,但保持簡單我把它作爲一個列表的對象,所以我不認爲我可以看看它的界面選項。
public class Cars
{
public List<object> otherThingsAboutCar;
}
List<Cars> allCars = GetAListOfCars();
因此,在這個有限的汽車列表中,我只想要敞篷車。
雖然我試圖簡化它的精神理解的目的,指示燈,一個車是敞篷實際上是汽車類中的一個子對象。因此,它幾乎就像我需要做的是這樣......
foreach(Cars c in allCars)
{
if (c.otherThingsAboutCar is a convertible)
add this "c" to the List<Convertibles>
}
所以,雖然車是一種類型,我需要看看裏面的車另一個特定的元素,如果是這樣,只返回那些。我更喜歡像IEnumerable這樣的選項,如果它符合條件就會返回一個返回值,或者只返回一個提供的類型列表的函數。所以在這種情況下,我知道子組件的類型是Convertible,但可能有其他類型,所以我不能將它固定到只返回Convertibles的函數中。我研究了泛型並將它們理解爲一個級別,但如果在這個級別內,我想讓子級別成爲另一個級別,我將如何去解決這個問題。
希望解釋的是,這裏有一些樣品
Car1
otherThingsAboutCar
Sedan
6-Cyl
Leather
Car2
otherThingsAboutCar
Convertible
8-Cyl
Leather
Car3
otherThingsAboutCar
Convertible
6-Cyl
Leather
Car3
otherThingsAboutCar
Coupe
6-Cyl
Cloth
在這種情況下,我的外車列表中有4項。我想要一個只包含兩個敞篷車的數組(或類似的Enumerable/List /)。如前所述,我也可能從同一份名單開始,並說我只想要那些帶有皮革或8缸發動機的人,因此我想到了仿製藥,但無法將其包裹在其周圍。