W jednym miejscu używam listy ciąg w tym przypadku jestem w stanie zmienić wartość napisu jak kod podany poniżejZmienianie wartości obiektów w pętli foreach?
foreach(string item in itemlist.ToList())
{
item=someValue; //I am able to do this
}
Ale dla obiektu klasy nie jestem w stanie zmienić członkowie wartość przedmiotu kod jest poniżej,
public class StudentDTO
{
string name;
int rollNo;
}
studentDTOList=GetDataFromDatabase();
foreach(StudentDTO student in studentDTOList.ToList())
{
studentDTO=ChangeName(studentDTO); //Not working
}
private StudentDTO ChangeName(StudentDTO studentDTO)
{
studentDTO.name=SomeName;
return studentDTO;
}
błąd jest: nie można przypisać bo to iteracji zmienna
Nie, naprawdę nie jesteś w stanie zrobić kodu w pierwszym fragmencie. Zmienna iteracyjna jest tylko do odczytu. –
Jestem w stanie to zrobić z powodu .ToList() tworzenia kopii listy i iteracji przez tę kopię, więc działa –
Nie, nie jesteś w stanie tego zrobić. Po prostu spróbuj. Kod * nie skompiluje *. Jeśli naprawdę w to uwierzysz, przygotuj krótki, ale kompletny program, pokazujący, że - zobaczysz, że się nie uda. –