我到处寻找解决这个问题的方法,但我找不到任何东西,这可能是因为我没有正确地说出来,所以我会尽可能多地详细说明。< / p>
基本上我遇到的问题是如何让以下场景发挥作用。假设你有班级&#34;员工&#34;就这样:
class Employee
{
string Name { get; set; }
Employee Manager { get; set; }
public Employee(string name, Employee manager)
{
Name = name;
Manager = manager;
}
}
在你的程序中,你可以这样做:
Employee george = new Employee("George", null);
Employee michael = new Employee("Michael", george);
但不是这样:
Employee michael = new Employee("Michael", george);
Employee george = new Employee("George", null);
因为很明显,对象&#34; george&#34;在宣布之前不能使用。
这是有问题的,例如我可能通过从数据库中检索信息来构建我的Employee对象,而我无法控制对象出现的顺序。
我可以想到一些解决方案,但似乎没有一个解决方案&#34;正确&#34;因为他们都有许多其他问题。
即。我可以在技术上用&#34; Manager&#34;来实例化每个对象。首先设置为null,并且填充了Employees列表后,将管理员分别分配给应该拥有一个的员工。对于可能有更简单的解决方案的问题,这感觉就像毫无意义的开销。
所以基本上我的问题是,解决这个问题的正确做法通常是什么?提前感谢您的回答。
答案 0 :(得分:1)
我可能是通过从数据库中检索信息来构造我的Employee对象,而我无法控制对象出现的顺序。
每个数据库都可以对东西进行排序这是基本的SQL。即使您有未分类的数据而没有数据库,您也可以在程序中对其进行排序。因此,答案将始终是对数据进行排序,然后构建对象或者如果您不希望将所有数据都创建为对象,请从您想要获取的数据开始并在循环中获取它的前任,直到你达到了你可以建造的第一个,然后按照你刚建立的链。