Laden...

Zwei IEnumerable ohne doppelte Elemente vereinen

Erstellt von markuss21 vor 13 Jahren Letzter Beitrag vor 13 Jahren 1.776 Views
M
markuss21 Themenstarter:in
121 Beiträge seit 2006
vor 13 Jahren
Zwei IEnumerable ohne doppelte Elemente vereinen

Hi,
ich versuche gearde 2 Arrays vom Typ IEnumerable in einem weiteren des gleichen Typs zu vereinigen, dabei sollen doppelete Elemente nur einmal enthalten sein.

Hat jemand einen Denkanstoß?

Merci
im Vorraus!

Markus

173 Beiträge seit 2009
vor 13 Jahren

Hi

Meinst du so wie "Union - 1" in 101 LINQ Samples: Set Operators?

LG

M
markuss21 Themenstarter:in
121 Beiträge seit 2006
vor 13 Jahren
ja, aber...

prinzipiell ja.
nur verwende ich eigene Klassen as IEnumerable, und der Union scheint nicht zu funktionieren....
😦

1.373 Beiträge seit 2004
vor 13 Jahren

Du hast also nur die nicht-generischen IEnumerables zur Verfügung? Du kannst ein IEnumerable mittels Cast<T> in ein IEnumerable<T> "umbiegen". Cast<object> wird dabei natürlich immer funktionieren. Also probier mal sowas:


var objects1 = enumerable1.Cast<object>();
var objects2 = enumerable2.Cast<object>();
var result = objects1.Union(objects2);

Grüße,
Andre

49.485 Beiträge seit 2005
vor 13 Jahren

Hallo markuss21,

wenns eigene Klassen sind, hindert dich doch keiner, diese als IEnumerable<T> zu implementieren und zu verwenden.

herbivore

61 Beiträge seit 2009
vor 13 Jahren

nur verwende ich eigene Klassen as IEnumerable, und der Union scheint nicht zu funktionieren....

Beim Implementieren von IEnumerable wird doch nur die GetEnumerator()-Methode hinzugefügt.
Erzeugst du da einen eigenen Enumerator oder wo kommt der her?

In der Zeit vor fünf Minuten ist Jetzt die Zukunft. Jetzt ist die Gegenwart. Die Zeit, in der ich zu erzählen begonnen habe, ist die Vergangenheit von Jetzt und die Zukunft von der Gegenwart der Zeit, fünf Minuten bevor ich zu erzählen begann.