请参阅我想列出员工对象。所以我有以下两种选择。
List<Tuple<int, string, string, string>>
List<Employee>
其中Employee是类包含4个属性。我的疑问是我应该使用什么(元组或员工对象列表?
如果是List<Employee>
那么在哪种情况下我应该使用List<Tuple<int, string, ...>>
。
答案 0 :(得分:0)
除非您正在进行某种算术运算,否则不应使用元组,其中元组将是一种可接受且广泛理解的提供值的方法。对于那些在您构建过程中不熟悉过程的人来说,元组会成为维护的噩梦。
编辑:想想看见之间的区别:
var employeeList = DAL.getEmployees();
var activeEmployees = employeeList.Where(employee => employee.IsActive);
VS
var employeeTuple = DAL.getEmployees();
var activeEmployees = employeeTuple.Where(employee => employee.Item3);
在第二个例子中,我知道你创建了一个活跃的员工名单,但我不知道你是怎么做到的。
答案 1 :(得分:0)
这很明显。如果您已经拥有Employee
课程,则使用List<Employee>
非常简单:
List<Employee> list = new List<Employee>();
list.Add( e );
...
Employee e = list.Where( i => i.Name == "John" ).FirstOrDefault();
而使用List<Tuple<...>>
至少是麻烦的:
List<Tuple<....>> list = new List<Tuple<....>>();
list.Add( new Tuple<...>( e.Name, e.Surname, e.Whateverelse, e.YetAnother ) );
...
// retrieve the tuple
var tuple = list.Where( i => i.Item1 == "John" );
// make Employee out of it
Employee e = new Employee( e.Item1, e.Item2, e.Item3, e.Item4 );