【发布时间】:2019-07-19 16:02:53
【问题描述】:
假设我有类似以下的内容。
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; }
}
}
现在我想从另一个类访问上述列表的元素,这对我当前的设置是否可行,还是我需要返回更多?
我见过一些人创建列表然后从另一个类添加但不尝试访问已经存在的元素的示例。如果确实存在这样的例子,请指出正确的方向。
第一次以这种方式使用列表,所以我不太确定自己在做什么。任何帮助都会很棒。如果需要更多信息,请询问。
【问题讨论】:
-
你的
GetList方法是static(不确定你是否想要那个),所以我不确定问题出在哪里。拨打BaseList.GetList()有什么问题吗? -
您只向我们展示了一半的代码;您希望 使用 列表的代码看起来像什么?它是在列表上执行
foreach,还是插入新项目,还是什么? -
就像约翰说的那样,只需使用
var list = BaseList.GetList();,然后您就可以像在任何其他只读列表中一样访问列表中的元素。并且“回答”您的评论“可能需要以只读方式起飞”,仅当您想添加/删除元素时 -
@MindSwipe
readonly修饰符仅影响bList字段,不允许在字段初始化/构造函数后重新分配。无论readonly修饰符如何,都可以向GetList()返回的List<Bases>添加元素。如果List<Bases>是ReadOnlyCollection<Bases>,则无法添加或删除元素。 -
@Johnbot 哎呀,我的错,我写的时候还睡着了