2012-03-20 23 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

शायद सबसे आसान समाधान है व्यक्ति से छात्र उत्तराधिकारी होना है (एक छात्र एक व्यक्ति है)।

इस तरह आपको सूची को प्रतिलिपि/परिवर्तित करने की आवश्यकता नहीं है।

परिणाम की तरह कुछ (आईडीई के बिना किया) होगा:

सूची

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

अब आप Person रों की एक सूची के लिए एक Student जोड़ सकते हैं।

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>(); 
संबंधित मुद्दे