对象列表的单独类?

时间:2013-10-08 22:46:29

标签: c# oop

我有一个Active Record模式的课程。让我们称之为“汽车”。所以我有我的所有方法,如插入,更新等,但它们只适用于单个对象。如果我想处理这些对象的列表怎么办?我应该创建一个单独的类,让我们说“CarCollection”将用于处理Car对象列表吗?或者我应该在我的Car类中创建一个返回Car对象列表的方法?我是OOP的初学者,但第二个选项(返回列表的方法)似乎有点不对。

感谢您的回答。

3 个答案:

答案 0 :(得分:2)

正如你自己说的:你将不得不使用一系列汽车。问题是你要在哪个班级存储这个清单。

当您仅将其用作独立示例时,您可以将该集合存储在包含main方法的类中。实际上,虽然你可能有一个类Dealership或类似的东西,逻辑上包含汽车列表。

还有一些其他可能性,例如专门用于对象CarManager等对象列表执行操作的类,但是要谨慎使用它们。

答案 1 :(得分:0)

不是活跃记录模式的忠实粉丝,但是如果你走这条路线,我会期望返回多辆车的方法仍然存在于你的Car课程中 - 你不会使用单独的课程。

这似乎就是Rails的方式。

答案 2 :(得分:0)

使用数组,列表或字典是标准做法。我喜欢使用词典,因为将类与唯一条目链接起来非常快。

创建一个名为car的类(非结构)。

您可以在词典中使用它来启用主要唯一键加速。

Public class Car
{
 public string id;
 public string name;
}

创建:

Dictionary<string, Car> carList = new Dictionary<string, Car>();

您可以在方法中添加它并将其作为参数传递或创建为全局(根据您的应用程序)

添加:

Car car = new Car(){id = "1", Name="car1"};
carList[car.id] = car;

您可以使用Linq将您的类链接在一起(几乎像SQL): Basic LINQ Queries