Changing values elsewhere C# with Example



Changing values elsewhere C# with Example

public static void Main(string[] args) 
{ 
var studentList = new List(); 
studentList.Add(new Student("Scott", "Nuke")); 
studentList.Add(new Student("Vincent", "King")); 
studentList.Add(new Student("Craig", "Bertt")); 
// make a separate list to print out later 
var printingList = studentList; // this is a new list object, but holding the same student 
objects inside it 
// oops, we've noticed typos in the names, so we fix those 
studentList[0].LastName = "Duke"; 
studentList[1].LastName = "Kong"; 
studentList[2].LastName = "Brett"; 
// okay, we now print the list 
PrintPrintingList(printingList); 
} 
private static void PrintPrintingList(List students) 
{ 
foreach (Student student in students) 
{ 
Console.WriteLine(string.Format("{0} {1}", student.FirstName, student.LastName)); 
} 
} 
You'll notice that even though the printingList list was made before the corrections to student names after the 
typos, the PrintPrintingList method still prints out the corrected names: 
Scott Duke 
Vincent Kong 
Craig Brett 
This is because both lists hold a list of references to the same students. SO changing the underlying student object 
propogates to usages by either list. 
Here's what the student class would look like. 
public class Student 
{ 
public string FirstName { get; set; } 
public string LastName { get; set; } 
public Student(string firstName, string lastName) 
{ 
 

this.FirstName = firstName; 
this.LastName = lastName; 
} 
} 

0 Comment's

Comment Form