Edytowanie Item - linq

0

witam

chciał bym zmienić kilka wartości w List<>

nie znam linq, ale po pewnym czasie wymyśliłem coś takiego:

this.List.Where(p => p.Name == "x").First().LastName= "xx";

tylko teraz chciał bym zmienić kilka pól, nie tylko przykładowe LastName. Jak to zrobić? (bez pisania kilku linijek z Where)

0

Chcesz je zmienić dla wszystkich wartości?
Jeśli tak to:

 
List.ForEach(x=> {
x.LastName = "xx";
x.FirstName = "yy";
});
2

Trochę bardziej idiomatyczne w C# od powyższego kodu będzie zwykłe foreach.

foreach(var item in this.List.Where(p => p.Name == "x"))
{
   item.Blah = "blah";
   item.Foo = "bar";
}

A bardziej idiomatyczne, bo ForEach jest metodą listy, IEnumerable<T> go nie ma. Mam wrażenie, że gdyby List<T> zaprojektowano po wprowadzeniu Linq to grubo by się zastanawiali czy ForEach wprowadzić. Obecnie jest raczej przyjęte, że linq-opodobne funkcje mają nie mieć efektów ubocznych.

1 użytkowników online, w tym zalogowanych: 0, gości: 1