我正在寻找一些类结构方面的帮助。假设我有一个名为 Dog 的类保存有关狗的信息(名称、重量、类型),但因为可能有多只狗,我还想要一个类来保存所有这些狗,以便在我的整个项目中使用。执行此操作的最佳方法是什么?
只需要一个 DogList 类,将 Dog 类信息存储到公共(public)列表中?任由我随意取回?
或者列表应该是原始狗类中的静态列表?也许在构造函数中,每当有人创建一条新狗时,这条狗就会被放入静态列表中?
编辑:抱歉问题有点失误 这是我目前的结构,想知道是否有更好的实现方式。
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);
}
}
}
最佳答案
列出狗的最简单方法是:
List<Dog>
这是使用 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'
}
}
如果您使用 LINQ 获取数据,则可以使用 ToList() 扩展返回 List<T>
,因此无需创建派生自 List<T>
的类.
关于c# - 列表类的类结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4736933/