877 Stimmen

LINQ-Entsprechung von foreach für IEnumerable<T>

Ich möchte das Äquivalent der folgenden in LINQ zu tun, aber ich kann nicht herausfinden, wie:

IEnumerable<Item> items = GetItems();
items.ForEach(i => i.DoStuff());

Was ist die richtige Syntax?

4 Stimmen

@pst: Ich habe diese Erweiterungsmethoden immer blindlings in meine Projekte gesteckt. Danke für diesen Artikel.

3 Stimmen

Es gibt MehrLINQ die eine ForEach Erweiterung .

0 Stimmen

Hier ist eine alternative Idee, wie dies könnte möglich sein: visualstudio.uservoice.com/forums/121579-visual-studio-2015/

0voto

Israel Margulies Punkte 8498

Für VB.NET sollten Sie verwenden:

listVariable.ForEach(Sub(i) i.Property = "Value")

0 Stimmen

HINWEIS: Dies kompiliert nur, wenn Sie eine List o IList . Für eine allgemeine IEnumerable schreiben Sie das VB-Äquivalent von die akzeptierte Antwort ist ForEach-Erweiterungsmethode.

-2voto

neil martin Punkte 17

Eine weitere ForEach Beispiel

public static IList<AddressEntry> MapToDomain(IList<AddressModel> addresses)
{
    var workingAddresses = new List<AddressEntry>();

    addresses.Select(a => a).ToList().ForEach(a => workingAddresses.Add(AddressModelMapper.MapToDomain(a)));

    return workingAddresses;
}

6 Stimmen

Was für eine Verschwendung von Speicherplatz. Dies ruft ToList auf, um eine Liste zu ergänzen. Warum wird nicht einfach Adressen.Auswahl(a => MapToDomain(a)) zurückgegeben?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X