列表类的类结构?

Spo*_*oks 6 c# oop class-design class

我正在寻找一些课程结构帮助.让我们说我有一个名为Dog的班级保存关于狗的信息(名称,体重,类型),但因为可能有多只狗,我还想要一个班级来容纳所有这些狗,以便在整个项目中使用.这是最好的方法吗?

只是有一个DogList类,它将Dog类信息存储到公共列表中?允许我随意取回它?

或者列表应该是原始狗类中的静态列表?也许在构造函数中,每当有人创建一条新狗时,狗就会进入静态列表?

编辑:抱歉问题有点错过领先这是我到目前为止的结构,想知道是否有更好的方法来实现.

public class Dog
{
    public string name{get;set;}
    public int weight { get; set; }
}

public class DogFactory //not sure if thats the correct wording
{
    public List<dog> lstDogs = new List<dog>();
    public void setDogs()
    {
    Animal.Retrieve("Dog"); 
    //will retrieve a list of all dogs, with details, though this is costly to use
        foreach(Animal.Dog pet in Animal._Dogs)
        {
            Dog doggie = new doggie();
            doggie.Name = pet.Name;
            ...etc
            lstDog.add(doggie);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Dav*_*sky 5

制作狗列表的最简单方法是:

List<Dog>

这是一个强类型的Dogs列表,它使用List<T>System.Collections.Generic中的类.你可以做一个这样的课:

public class DogList : List<Dog>

虽然这通常是没有必要的,除非你想特别添加狗的列表属性而不是狗本身.

更新:

使用时通常不需要创建专用列表类List<T>.在大多数情况下,您可以这样做:

public class DogService
{
    public List<Dog> GetAllDogs()
    {
        var r = new Repository(); // Your data repository
        return r.Dogs.ToList();   // assuming your repository exposes a 'Dogs query'
    }
}
Run Code Online (Sandbox Code Playgroud)

如果您使用LINQ来获取数据,则可以使用ToList()扩展来返回a List<T>,因此无需创建派生自的类List<T>.