2014-11-06 41 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