在C#中的GlobalVariables.cs中存储一组结构

时间:2016-08-20 07:47:02

标签: c# arrays struct

我有一系列结构。如何在GlobalVariables.cs中全局存储它们?当我尝试时,它会给出一个错误,说它由于其保护级别而无法访问。请帮助!

这是GlobalVariables.cs代码:

public class GlobalVariables
    {
       List<Employee[]> persons = new List<Employee[]>();
    }

以下是表单代码:

List<Employee> persons = new List<Employee>()
{
    new Employee { Name = "alfred", Id = 203476, Authority = "1" },
    new Employee { Name = "barbara", Id = 182856, Authority = "4" },
    new Employee { Name = "chris", Id = 398046, Authority = "2" },
};

这是员工结构:

public struct Employee
    {       
        public string Name;
        public int Id;
        public string Authority;
    }

1 个答案:

答案 0 :(得分:0)

我从您的代码中不确定您要尝试做什么,但如果您将GlobalVariables设置为静态类(公共静态类GlobalVariables),然后从其他类中访问GlobalVariables.persons,事情应该没问题。如果这不起作用,请尝试解释您想要对代码执行的操作。

public static class GlobalVariables
{
   public static List<Employee[]> persons = new List<Employee[]>();

//如果从其他类访问,静态类的字段需要是静态的和公共的     }

然后(来自另一个班级):

Employee person = new Employee();
GlobalVariables.persons.Add(person);

编辑:哎呀 - 刚注意到你的全局列表是一个数组列表,所以你要添加person []而不是person。不确定为什么要这样做,但上面的代码通过使用公共静态来回答你的全局访问问题。

在旁注,使用

List<Employee>

容易得多
List<Employee[]> 

用于大多数目的。如果需要,您可以使用

之类的内容对列表进行分组
GlobalVariables.persons.Where(p=>p.Authority=="2");

如果您真的需要对员工进行分组,那么最好使用全球词典&lt;&gt;而不是数组列表。