Meine Frage als Titel oben. Zum Beispiel
IEnumerable<T> items = new T[]{new T("msg")};
items.ToList().Add(new T("msg2"));
aber es ist ja nur 1 Gegenstand drin. Können wir eine Methode haben wie items.Add(item)
wie die List<T>
?
Meine Frage als Titel oben. Zum Beispiel
IEnumerable<T> items = new T[]{new T("msg")};
items.ToList().Add(new T("msg2"));
aber es ist ja nur 1 Gegenstand drin. Können wir eine Methode haben wie items.Add(item)
wie die List<T>
?
Ich bin nur hier, um zu sagen, dass, abgesehen von Enumerable.Concat
Erweiterungsmethode, scheint es eine weitere Methode namens Enumerable.Append
in .NET Core 1.1.1. Letzteres ermöglicht es Ihnen, ein einzelnes Element an eine bestehende Sequenz zu verketten. Die Antwort von Aamol kann also auch wie folgt geschrieben werden
IEnumerable<T> items = new T[]{new T("msg")};
items = items.Append(new T("msg2"));
Bitte beachten Sie jedoch, dass diese Funktion die Eingabesequenz nicht verändert, sondern nur einen Wrapper zurückgibt, der die angegebene Sequenz und das angehängte Element zusammenfügt.
Sie können nicht nur keine Elemente hinzufügen, wie Sie angeben, sondern wenn Sie ein Element zu einer List<T>
(oder so ziemlich jede andere nicht schreibgeschützte Sammlung), für die Sie einen Enumerator haben, wird der Enumerator ungültig gemacht (wirft InvalidOperationException
von da an).
Wenn Sie die Ergebnisse einer Datenabfrage aggregieren, können Sie die Concat
Erweiterungsmethode:
Edit: Ursprünglich habe ich die Union
Erweiterung in dem Beispiel, was nicht ganz korrekt ist. Meine Anwendung verwendet sie ausgiebig, um sicherzustellen, dass sich überschneidende Abfragen nicht zu doppelten Ergebnissen führen.
IEnumerable<T> itemsA = ...;
IEnumerable<T> itemsB = ...;
IEnumerable<T> itemsC = ...;
return itemsA.Concat(itemsB).Concat(itemsC);
Andere haben bereits ausführlich erklärt, warum man keine Gegenstände zu einem IEnumerable
. Ich möchte nur hinzufügen, dass Sie, wenn Sie mit der Codierung für eine Schnittstelle fortfahren möchten, die eine Sammlung darstellt, und eine Hinzufügungsmethode wünschen, den Code für ICollection
o IList
. Als zusätzliches Bonbon implementieren diese Schnittstellen IEnumerable
.
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.