2012-03-20 5 views
6

У меня есть списокКак создать новый список из существующего списка?

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; } 
} 

Помогите мне ..

Thanx

+0

имеет класс '' Person' и Student' имеют какое-то отношение? –

ответ

17

Это должно сделать трюк

List<Person> persons = students.Select(student => new Person {FirstName = student.FirstName, LastName = student.LastName}).ToList(); 
+1

+1 linq - это путь сюда ... если вы избегаете того факта, что он выглядит как «Студент», должен наследовать «Личность». – Mizipzor

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

Если нет явного наследования между Student и Person вы можете использовать проекцию:

List<Student> ls = ...; 

List<Person> lp = 
    ls.Select( 
    student => 
     new Person() 
     { 
      FirstName = student.FirstName, 
      LastName = student.LastName 
     }); 
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 }); 
1

Держите класс человека, как есть.

class Person { 
    public string FirstName { get; set; } 
    public string LastName { get; set; } 
} 

Сделать Student класс проистекают из Person и добавить свойство школы.

class Student : Person { 
    public string School { get; set; } 
} 

Теперь вы можете добавить Student в Список Person с.

var persons = new List<Person>(); 
persons.Add(new Student()); 
1

Вы можете заполнить данные в другой список, следующим образом:

listPerson = (from student in listStudent 
          select new Person 
          { 
           FirstName = student.FirstName, 
           LastName = student.LastName 
          }).ToList<Person>(); 
Смежные вопросы