gpt4 book ai didi

c# - 列表类的类结构?

转载 作者:太空狗 更新时间:2023-10-29 21:19:48 26 4
gpt4 key购买 nike

我正在寻找一些类结构方面的帮助。假设我有一个名为 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com