Deutlich in linq?
Frage ich mich, wie kann ich das erreichen?
Ich will nur unterschiedliche Namen aus einer Sammlung von Objekten
MyObject a = new Object();
a.Name = 'One';
a.Value = '10';
MyObject b = new Object();
b.Name = 'One';
b.Value = '15';
MyObject c = new Object();
c.Name = 'Two';
c.Value = '10';
Ich will also nur wieder der name. Ich kümmern sich nicht über den Wert in diesem Fall nur der name.
Also versuchte ich
//nimm alle Objekte in eine Sammlung.
myCollection.Disinct()..Select(x => new MyClassToStore() {Text = x.Name, Value = x.Name}).ToList());
Allerdings muss ich tun, deutlich in der property-Ebene, nicht auf der Objektebene. Also ich will wieder "Eins" und "Zwei". Jetzt bekomme ich "Eins", "Eins" und "Zwei" zurück.
Sehe ich eine Bibliothek namens morelinq aber ich nicht sicher, ob ich es verwenden soll, wie es noch in der beta und scheint nicht zu sein, entwickelt auf mehr.
Plus eine ganze Bibliothek für die ein-Extrakt-Abfrage, die ich bin nicht sicher, ob es das Wert ist.
InformationsquelleAutor chobo2 | 2011-04-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dieses füllt sowohl die Text-und Wert-Felder:
InformationsquelleAutor PHeiberg
Vielleicht so etwas helfen kann?
var distinctitems = myCollection.GroupBy(x => x.Name).Select(x => x.First () -).Wählen Sie(neue MyClassToStore() {Text = x.Name, Wert = x ist.Name}) ich nehme an, obwohl ich nicht genau das bekommen, was Sie brauchen. da die Verwendung der gleichen Eigenschaft (name) zweimal ist ein bisschen umständlich... ich denke, das sollte man sich anhören Cameron, wenn Sie brauchen nur Namen...
InformationsquelleAutor Marino Šimić
Wenn Sie wollen einfach nur wieder verschiedene Namen, die Sie verwenden können:
InformationsquelleAutor Cameron
Ich persönlich schlage vor, Sie überschreiben operator == und != und bestimmen Sie, wie und warum ein Objekt ist ein Unikat es. Dann nutzen Sie die Distinct () - Aufruf auf die Sammlung.
Tun Sie müssen vorsichtig sein, mit null-Werten finden Sie im Microsoft -Richtlinien für die Überlastung Equals() und Operator == (C# - Programmierhandbuch).
==
oder!=
Betreiber in irgendeiner Art und globalen Kontext. Was hier vorgeschlagen ist, überschreiben dieEquals
und==
Betreiber Ihre Klasse erbt vonobject
InformationsquelleAutor Chuck Savage
Implementieren Sie Ihre Klasse, so wird die linq-distinct-operator nicht die Standard-Gleichheit comparer.
... Ihre Umsetzung details. ...
InformationsquelleAutor Dave M