Ich finde mich oft mit einer Situation, wo ich eine Operation auf einer Reihe von Eigenschaften durchführen muss. Die Operation kann alles Mögliche sein, indem überprüft wird, ob eine bestimmte Eigenschaft mit irgendetwas in der Menge zu einer einzelnen Iteration von Aktionen übereinstimmt. Manchmal wird die Menge beim Aufruf der Funktion dynamisch erzeugt, manche werden mit einer einfachen LINQ-Anweisung erstellt, manchmal ist es eine fest codierte Menge, die immer gleich bleibt. Es existiert aber immer eine Konstante: das Set existiert nur für einen einzigen Vorgang und hat davor oder danach keine Verwendung.Welcher C# -Container ist für nur eine Operation am ressourceneffizientesten?
Mein Problem ist, ich habe so viele Punkte in meiner Anwendung, wo dies notwendig ist, aber ich sehe sehr, sehr inkonsequent in, wie ich diese Sätze speichern. Einige von ihnen sind Arrays, einige sind Listen, und gerade habe ich ein paar verknüpfte Listen gefunden. Keine der Operationen, um die es mir besonders geht, muss sich um Indizes, Containergröße, Reihenfolge oder andere Funktionen kümmern, die von einem der einzelnen Containertypen vergeben werden. Ich habe die Ressourceneffizienz ausgewählt, weil es eine bessere Idee ist, als Münzen zu werfen. Ich denke, da die Array-Größe konfiguriert ist und es ein sehr elementarer Container ist, könnte das meine beste Wahl sein, aber ich denke, es ist eine bessere Idee, herum zu fragen. Alternativ, wenn es eine bessere Wahl gibt, nicht aus Ressourceneffizienz, sondern strikt als eine bessere Wahl für diese Art von Situation, wäre das auch schön.
Ich denke, Sie sollten sich nicht zu viel Gedanken über die Ressourceneffizienz machen, es sei denn, das Profil zeigt, dass ein Problem vorliegt. Aus der Perspektive, ob es einen »einzig wahren« Umgang gibt, ist dies jedoch noch immer eine berechtigte Frage. – Joey
Ich bin nicht besonders besorgt über Ressourceneffizienz, ich wählte es als die Metrik, da ich wirklich einen Grund brauche, jenseits der zufälligen Wahl. Ich könnte die Frage auf "Die beste Wahl im Allgemeinen" umstrukturieren. –
Als pedantischer Programmierer verstehe ich Ihre Bedenken völlig, obwohl es, wie Rössel sagte, wahrscheinlich nicht so wichtig ist. Ich habe es nie profiliert, da mir das Performanceproblem nie aufgefallen ist, aber ich persönlich benutze ein Array für statischen Inhalt und eine Liste, wenn ich aus etwas anderem eine Liste zusammenstellen muss. – Coincoin