我有一个名为employeeList的列表,我正在填充一个正常工作的数据表。所以现在我希望能够在运行时将(可选)项添加到列表中。我认为一个简单的List.Insert会起作用,但是当我尝试这样做时我会遇到错误。我遇到问题的那一行是employeeList.Insert,这两个错误都包含在代码块中。
private static List<Employee> employeeList(string store,
string loginId = "",
int position = 100)
{
var employeeList = default(List<Employee>);
employeeList = new List<Employee>();
using (var dt = Logins.getDataset(store, "Manpower_SelectLogins"))
{
foreach (DataRow dr in dt.Rows)
{
employeeList.Add(new Employee(dr["LoginId"].ToString()));
}
}
if (string.IsNullOrEmpty(loginId) != true)
{
employeeList.Insert(position, loginId);
//Error 2 Argument 2: cannot convert from 'string' to
//'ManpowerManager.MainWindow.Employee
//Error 1 The best overloaded method match for
//'System.Collections.Generic.List<ManpowerManager.MainWindow.Employee>.
//Insert(int, ManpowerManager.MainWindow.Employee)' has some invalid arguments
}
return employeeList;
}
我做错了什么?
答案 0 :(得分:3)
employeeList
是ManpowerManager.MainWindow.Employe
类型的列表,因此您无法在其中插入字符串。
我想你可能会想要这样的东西:
employeeList.Insert(position, new Employee(loginId));
答案 1 :(得分:1)
您需要插入一个新的员工:
employeeList.Insert(position, new Employee(loginid)
{
FirstName = "steve", // or whatever you want to initalize (or not)
} );
您正在尝试将字符串插入到Employee对象列表中,从而导致错误。
除此之外,您要分配null(default(List<Employee>)
),然后在下一行分配新的List。您可以在一行中执行此操作:List<Employee> employeeList = new List<Employee>();