LINQ Frage ... muss Element mit min Wert erhalten

8

Ich bin neu bei linq, also kämpfe ich immer noch ....

Ich habe eine Sammlung von Steuerelementen (jede hat eine Position vom Typ Point). Ich muss das Steuerelement mit dem niedrigsten Y-Wert (oberste Kontrolle) aus der Sammlung entfernen.

Ein Beispiel würde sehr geschätzt werden!

    
no9 26.08.2010, 12:36
quelle

6 Antworten

11

In etwa so:

%Vor%

Die Bestellung ist ziemlich teuer. Je nach Anwendungsfall können Sie auch den Artikel mit dem niedrigsten Wert finden und ihn dann entfernen:

%Vor%

Dies zählt die Liste bis zu drei Mal auf, im Allgemeinen sollte dies immer noch schneller als die OrderBy sein, aber wenn Leistung für Sie wichtig ist, dann messen Sie zuerst.

    
Simon Steele 26.08.2010, 12:40
quelle
6

Sie müssen nur das Objekt finden und es entfernen, das ist sicher. Entfernen ist sehr klar, aber beim Finden können Sie die Aggregate-Methode wie folgt verwenden:

%Vor%     
Musa Hafalır 26.08.2010 12:48
quelle
4

Bestellung ist teurer. Holen Sie sich den minimalen Wert.

%Vor%     
Jerome 26.08.2010 12:51
quelle
0

Denken Sie daran, dass LINQ für die Sprache INtegreated Query steht. Das heißt, es soll als Werkzeug zum Abfragen, nicht zum Ändern von Sammlungen verwendet werden.

Das heißt, Sie könnten das Steuerelement finden, das Sie mit LINQ entfernen müssen. Dann einfach den normalen Weg entfernen.

%Vor%     
Dan Tao 26.08.2010 12:50
quelle
0

Im Folgenden finden Sie eine Erweiterungsmethode, mit der Sie min-Elemente anstelle von min-Werten auswählen können. Sie können wie folgt verwenden:

var lowest = collection.MinElement(x => x.Y);

Dann kannst du einfach das Element mit collection.Remove(lowest) entfernen.

%Vor%     
NightElfik 12.10.2016 04:48
quelle
-1
%Vor%     
amaca 26.08.2010 12:48
quelle

Tags und Links