从另一个类访问列表

时间:2010-09-15 11:09:57

标签: c# list inheritance dictionary scope

任何人都可以告诉我如何在一个类中创建一个列表并从另一个类中访问它吗?

3 个答案:

答案 0 :(得分:22)

public class MyClass {

    private List<string> myList = new List<string>();

    public List<string> GetList()
    {
        return myList;
    }
} 

你可以在那里有任何东西而不是字符串。 现在,您可以创建MyClass的对象,并可以访问已实现的公共方法,以返回myList

public class CallingClass {

    MyClass myClass = new MyClass();

    public void GetList()
    {
        List<string> calledList = myClass.GetList();
        ///More code here...
    }
}

答案 1 :(得分:8)

要创建列表,请调用列表构造函数:

class Foo
{
    private List<Item> myList = new List<Item>();
}

要使其他类可以访问它,请添加一个公开它的公共属性。

class Foo
{
    private List<Item> myList = new List<Item();

    public List<Item> MyList
    {
        get { return myList; }
    }
}

要从另一个类访问列表,您需要引用类型为Foo的对象。假设您有这样的引用并且它被称为foo,那么您可以编写foo.MyList来访问该列表。

您可能需要小心直接公开列表。如果您只需要允许只读,请考虑公开ReadOnlyCollection

答案 2 :(得分:0)

如果您需要一个声明为静态属性的列表

class ListShare 
{
    public static List<String> DataList { get; set; } = new List<String>();
}

class ListUse
{
    public void AddData()
    {
        ListShare.DataList.Add("content ...");
    }

    public void ClearData()
    {
        ListShare.DataList.Clear();
    }
}