访问另一类列表的元素



说我有以下内容。

namespace BurgerMachine
{
public class BaseList{
    private static readonly List<Bases> bList = new List<Bases>() //might need to take off readonly
    {
        new Bases(){ BaseID=1, BaseName="Bun"},
        new Bases(){ BaseID=2, BaseName="SeededBun"}
    };
    public static List<Bases> GetList()
    {
        return bList;
    }
}
    public class Bases
    {
        public int BaseID { get; set; }
        public string BaseName { get; set; }
    }
}

现在,我想从另一个类访问上述列表的元素,这是我当前的设置可行吗?还是我需要返回更多?

我看到了一些人创建列表,然后从另一类添加到的示例,但没有尝试访问已经存在的元素。如果确实存在这样的示例,请指出我的方向正确。

第一次以这种方式使用列表,所以我不确定自己在做什么。任何帮助都会很棒。如果需要更多信息,请询问。

以下几乎没有返回列表的最佳实现。

带有静态类

public class BaseListProvider
{
    public static readonly Bases Bun = new Bases() { BaseID = 1, BaseName = "Bun" };
    public static readonly Bases SeededBun = new Bases() { BaseID = 2, BaseName = "SeededBun" };
    public static IEnumerable<Bases> GetList()
    {
        return new[]
        {
            Bun,
            SeededBun
        };
    }
}
public class Bases
{
    public int BaseID { get; set; }
    public string BaseName { get; set; }
}

具有接口,如果您使用依赖项注入

,这可能会有所帮助
public class BaseListProvider : IBaseListProvider
{
    public static readonly Bases Bun = new Bases() { BaseID = 1, BaseName = "Bun" };
    public static readonly Bases SeededBun = new Bases() { BaseID = 2, BaseName = "SeededBun" };
    public IEnumerable<Bases> GetList()
    {
        return new[]
        {
            Bun,
            SeededBun
        };
    }
}
public interface IBaseListProvider
{
    IEnumerable<Bases> GetList();
}
public class Bases
{
    public int BaseID { get; set; }
    public string BaseName { get; set; }
}

好吧,您可以将列表作为public成员如下,然后在您想要的任何地方访问

public List<Bases> bList = new List<Bases>()
{
    new Bases(){ BaseID=1, BaseName="Bun"},
    new Bases(){ BaseID=2, BaseName="SeededBun"}
};

您现在可以访问

var blist = new BaseList().bList;

使用您的当前设置(如已经评论),为什么不能调用静态方法BaseList.GetList()

最新更新