代码之家  ›  专栏  ›  技术社区  ›  Zo Has

如何将新列表<t>添加到C#2.0中的另一个列表?

  •  0
  • Zo Has  · 技术社区  · 14 年前

    我只是在列表中添加项,但无法使其生效。它继续抛出预期的错误;,预期的错误)。

    using System;
    using System.Collections.Generic;
    
    public class Employee
    {
        private int _id;
        private string _FName;
        private string _MName;
        private string _LName;
        private DateTime _DOB;
        private char _sex;
    
    public int ID { get { return _id; } set { _id=value; } }
    public string FName{get{return _FName;}set{_FName=value;}}
    public string MName { get { return _MName; } set { _MName = value; } }
    public string LName { get { return _LName; } set { _LName = value; } }
    public DateTime DOB { get { return _DOB; } set { _DOB = value; } }
    public char Sex { get { return _sex; } set { _sex = value; } }
    
    public List<Employee> GetEmployeeList()
    {
        List<Employee> empList=new List<Employee>();
        empList.Add(new Employee() { ID = 1, FName = "John", MName = "", LName = "Shields", DOB = DateTime.Parse("12/11/1971"), Sex = 'M' });
        empList.Add(new Employee() { ID = 2, FName = "Mary", MName = "Matthew", LName = "Jacobs", DOB = DateTime.Parse("01/17/1961"), Sex = 'F' });
        empList.Add(new Employee() { ID = 3, FName = "Amber", MName = "Carl", LName = "Agar", DOB = DateTime.Parse("12/23/1971"), Sex = 'M' });
        empList.Add(new Employee() { ID = 4, FName = "Kathy", MName = "", LName = "Berry", DOB = DateTime.Parse("11/15/1976"), Sex = 'F' });
        return empList;
    }
    }
    
    2 回复  |  直到 14 年前
        1
  •  4
  •   Jon Skeet    14 年前

    如果您使用的是ASP.NET 2,那么它可能使用的是C#2编译器(实际上,根据您的标题),它不支持您正在使用的对象初始值设定项语法。如果可能,请尝试升级以使用C#3编译器-或创建 Employee 构造函数获取所有相关参数。

    所以这样的表达:

    new Employee() { ID = 1, FName = "John", MName = "", LName = "Shields", 
                     DOB = DateTime.Parse("12/11/1971"), Sex = 'M' }
    

    new Employee(1, "John", "", "Shields", "DOB", 'M')
    

    注意如果你 使用C#3编译器,您不必对 Add

    var employees = new List<Employee>
    {
        new Employee(... stuff here...),
        new Employee(... stuff here...)
    };
    

    如果需要,您仍然可以使用对象初始值设定项语法,但是集合初始值设定项语法使它更简单,无论您采用什么方法来构造 雇员 物体。

        2
  •  1
  •   Jonas Høgh    14 年前

    下面是使用构造函数的完整代码示例:

    using System;
    using System.Collections.Generic;
    
    public class Employee
    {
        private int _id;
        private string _FName;
        private string _MName;
        private string _LName;
        private DateTime _DOB;
        private char _sex;
    
        public int ID { get { return _id; } set { _id = value; } }
        public string FName { get { return _FName; } set { _FName = value; } }
        public string MName { get { return _MName; } set { _MName = value; } }
        public string LName { get { return _LName; } set { _LName = value; } }
        public DateTime DOB { get { return _DOB; } set { _DOB = value; } }
        public char Sex { get { return _sex; } set { _sex = value; } }
    
        public Employee(int id, string fname, string mname, string lname, DateTime dob, char sex)
        {
            ID = id;
            FName = fname;
            MName = mname;
            LName = lname;
            DOB = dob;
            Sex = sex;
        }
    
        public List<Employee> GetEmployeeList()
        {
            List<Employee> empList = new List<Employee>();
            empList.Add(new Employee(1, "John", "", "Shields", DateTime.Parse("12/11/1971"), 'M'));
            //etc
            return empList;
        }
    }
    
    推荐文章