C# 如何从现有列表创建新列表?
我有一张单子C# 如何从现有列表创建新列表?,c#,list,C#,List,我有一张单子 List<Student> class Student{ public string FirstName { get; set; } public string LastName { get; set; } public string School { get; set; } } 列表 班级学生{ 公共字符串名{get;set;} 公共字符串LastName{get;set;} 公共字符串学校{get;set;} } 我想使用上面的列表,创
List<Student>
class Student{
public string FirstName { get; set; }
public string LastName { get; set; }
public string School { get; set; }
}
列表
班级学生{
公共字符串名{get;set;}
公共字符串LastName{get;set;}
公共字符串学校{get;set;}
}
我想使用上面的列表,创建或填充数据到
List<Person>
class Person{
public string FirstName { get; set; }
public string LastName { get; set; }
}
列表
班主任{
公共字符串名{get;set;}
公共字符串LastName{get;set;}
}
帮帮我
Thanx也许最简单的解决方案是从Person继承Student(学生就是Person) 这样,您根本不必复制/转换列表 结果是(在没有IDE的情况下完成): 名单
公共类人物{
公共字符串名{get;set;}
公共字符串LastName{get;set;}
}
班级学生:人{
公共字符串学校{get;set;}
}
列表
列表
这应该可以做到
List<Person> persons = students.Select(student => new Person {FirstName = student.FirstName, LastName = student.LastName}).ToList();
List persons=students.Select(student=>newperson{FirstName=student.FirstName,LastName=student.LastName}).ToList();
如果学生
和人
之间没有明确的继承关系,您可以使用投影:
List<Student> ls = ...;
List<Person> lp =
ls.Select(
student =>
new Person()
{
FirstName = student.FirstName,
LastName = student.LastName
} );
列表ls=。。。;
列表lp=
ls.选择(
学生=>
新人()
{
FirstName=student.FirstName,
LastName=student.LastName
} );
假设我们有
List<Student> k= new List<Student>();
//add some students here
List<Person> p= k.select(s=>new Person() { FirstName = student.FirstName, LastName = student.LastName });
List k=新列表();
//在这里添加一些学生
列表p=k.select(s=>newperson(){FirstName=student.FirstName,LastName=student.LastName});
保持person类不变
class Person {
public string FirstName { get; set; }
public string LastName { get; set; }
}
使学生
类派生自个人
,并添加学校属性
class Student : Person {
public string School { get; set; }
}
您现在可以将学生
添加到人员
列表中
var persons = new List<Person>();
persons.Add(new Student());
var persons=新列表();
添加(新学生());
您可以通过以下方式将数据填入另一个列表:
listPerson = (from student in listStudent
select new Person
{
FirstName = student.FirstName,
LastName = student.LastName
}).ToList<Person>();
listPerson=(来自listStudent中的学生)
选择新人
{
FirstName=student.FirstName,
LastName=student.LastName
}).ToList();
班级个人和学生有什么关系吗?+1 linq是这里的方法。。。如果您避免看起来像是学生
应该继承人
。
listPerson = (from student in listStudent
select new Person
{
FirstName = student.FirstName,
LastName = student.LastName
}).ToList<Person>();