以WPF格式将项添加到通用列表

时间:2011-08-31 15:07:01

标签: c# wpf list

我有一个名为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;
    }

我做错了什么?

2 个答案:

答案 0 :(得分:3)

employeeListManpowerManager.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>();