Edytowanie Item - linq

Edytowanie Item - linq
AL
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 308
0

witam

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

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

Kopiuj
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)

  • Rejestracja: dni
  • Ostatnio: dni
0

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

Kopiuj
 
List.ForEach(x=> {
x.LastName = "xx";
x.FirstName = "yy";
});
RE
  • Rejestracja: dni
  • Ostatnio: dni
2

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

Kopiuj
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.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.