我有一个清单
List<Student>
class Student{
public string FirstName { get; set; }
public string LastName { get; set; }
public string School { get; set; }
}
我想使用上面的列表并将该数据创建或填充到
中List<Person>
class Person{
public string FirstName { get; set; }
public string LastName { get; set; }
}
帮帮我......
感谢名单
答案 0 :(得分:20)
应该做的伎俩
List<Person> persons = students.Select(student => new Person {FirstName = student.FirstName, LastName = student.LastName}).ToList();
答案 1 :(得分:7)
也许最简单的解决方案是继承学生来自人(学生是一个人)。
这样您就不必复制/转换列表了。
结果类似于(没有IDE完成):
列表
public class Person{
public string FirstName { get; set; }
public string LastName { get; set; }
}
class Student : Person{
public string School { get; set; }
}
List<Student> ...
List<Person> ...
答案 2 :(得分:3)
如果Student
和Person
之间没有明确的继承,您可以使用投影:
List<Student> ls = ...;
List<Person> lp =
ls.Select(
student =>
new Person()
{
FirstName = student.FirstName,
LastName = student.LastName
} );
答案 3 :(得分:1)
假设我们有
List<Student> k= new List<Student>();
//add some students here
List<Person> p= k.select(s=>new Person() { FirstName = student.FirstName, LastName = student.LastName });
答案 4 :(得分:1)
按原样保持人员课程。
class Person {
public string FirstName { get; set; }
public string LastName { get; set; }
}
使Student
类派生自Person
并添加School属性。
class Student : Person {
public string School { get; set; }
}
现在,您可以将Student
添加到Person
s的列表中。
var persons = new List<Person>();
persons.Add(new Student());
答案 5 :(得分:1)
您可以按照以下方式将数据填充到另一个列表中:
listPerson = (from student in listStudent
select new Person
{
FirstName = student.FirstName,
LastName = student.LastName
}).ToList<Person>();