2014-11-06 20 views
-2

我想做一個航空預訂系統,因爲這是我的同事考試項目,所以我想如果我這樣做,我可以和他一樣工作。我是一位正在轉向C#的PHP(是,OO)程序員。對同一類別的幾個實例的Foreach循環

我已經創建了幾個版本的一類,因爲這樣的:

Vluchten flight1 = new Vluchten("1337", "Scandinavian Airlines", "Oslo Intl", 180, 162); 
    Vluchten flight2 = new Vluchten("101", "KLM", "Derpistan", 20, 17); 
    Vluchten flight3 = new Vluchten("112", "Ryan Air", "Doetinchem Rock City", 10, 7); 

現在我想知道,我已經通過這個讓我可以那麼做這些所有的權利,但有一種方法,我可以循環把它們放在一個datagridview表中?

+3

爲什麼不使用收集的條件搜索?或許'列表'...... – haim770 2014-11-06 14:50:40

回答

5

你需要把它們放入一個List<Vluchten>,然後你可以很容易地使用foreach循環

List<Vluchten> flights = new List<Vluchten>() { flight1, flight2, flight3 }; 

foreach(Vluchten flight in flights) 
{ 
    //do something 
} 
1

您可以將它們初始化到一個數組或列表,而不是單個對象:

var flights = new[] 
{ 
    new Vluchten("1337", "Scandinavian Airlines", "Oslo Intl", 180, 162), 
    new Vluchten("101", "KLM", "Derpistan", 20, 17), 
    new Vluchten("112", "Ryan Air", "Doetinchem Rock City", 10, 7) 
}; 

foreach (var flight in flights) 
{ 

} 
+2

當向新開發該語言的人解釋List和Collection時,請不要使用'var'。這隻會掩蓋某種類型語言的優勢之一。 – 2014-11-06 14:53:40

+3

我相信使用'var'是個人喜好的問題,不應該添加或減少任何解決方案。如果需要,OP歡迎詢問。 – Jonesopolis 2014-11-06 14:55:38

+1

我會鼓勵使用'var',尤其是在教育新的C#人員時。 – 2014-11-06 15:05:20

1

更快的方法,使他們的列表:

var flights = new List<Vluchten> 
{ 
    new Vluchten("1337", "Scandinavian Airlines", "Oslo Intl", 180, 162), 
    new Vluchten("101", "KLM", "Derpistan", 20, 17), 
    new Vluchten("112", "Ryan Air", "Doetinchem Rock City", 10, 7) 
}; 

var是一種創建未知類型的新變量的簡單方法。

List<Vluchten>告訴C#我們想要的類型Vluchten

{}這些大括號,我們列出了一堆實例化對象的內部列表。這是短手flights.Add()

然後你可以使用這個擴展方法遍歷它們:

flights.ForEach(f => ..); 

哪裏fVluchten。該..你可以把{}表示它操作的每個對象的方法體,或者你可以把一個行ForEach(f => Console.WriteLine(f.Id))

ForEach只是短暫的foreach (var item in flights) {}

LINQ可以在集合來查詢。這些功能包括Where,Any,Select

簡單。

我建議你是斜體拿到C#語言的一個很好的理解爲'Vluchten`的整體

+3

你認爲OP會理解你在這裏發佈的不完整的lambda表達式,當他們不知道循環和列表時?我認爲這可能是一個很好的答案,但你需要詳細說明最後一點。 – 2014-11-06 14:54:29

+3

順便說一下,它不是linq。它只是一個'List ' – 2014-11-06 14:55:24

+0

的方法我認爲他們已經知道這些基本的語言結構(數組,for循環)。他來自PHP,所以應該理解很多構造。我已經爲他開闢了研究這些不同事物的空間,以擴大他對C#語言的瞭解。所以寧可只是給他看一些簡單的東西,讓他有機會陷入語言 – 2014-11-06 14:55:49