Welche Collection ist am besten geeignet?
-
Firefighter schrieb:
Wobei ich rein gar nicht weiß was dein Beispiel, mit einer Collection-Frage zu tuen hat. Aber auch egal aus deinen Anforderungen hab ich einfach mal eine List<T> als ausreichend erkoren.
Grundlagen schon durch?
-
Wayne2011 schrieb:
Firefighter schrieb:
Wobei ich rein gar nicht weiß was dein Beispiel, mit einer Collection-Frage zu tuen hat. Aber auch egal aus deinen Anforderungen hab ich einfach mal eine List<T> als ausreichend erkoren.
Grundlagen schon durch?
Ich versteh deine Aussage nicht wirklich? Weil dein Beispiel hat rein gar nichts mit der Wahl einer Collection zu tuen. Du hast Anforderung an eine Collection gestellt und ich hab dir eine genannt die deine Anforderungen erfüllt.
-
Wayne2011 schrieb:
Ich bin recht neu in der Programmiersprache C#? Welche Collection ist am besten für folgende Sache geeignet?
-Es Soll Ein String gespeichert werden(string StrName = StrDatum + StrStart +StrZiel+StrKM;
)
-doppelte Eintrage sind erlaubt.
-ich muss sortieren können.Da die Collection später in einer DataGridView angezeigt werden soll, will ich in einem versteckten Column entweder irgendwie das Item oder einen Iterator halten, so dass ich beim an Klicken eines Elementes, immer direkt auf ein Item aus der Collection zugreifen kann(ist zu Bearbeitungszwecken). Vielen Dank
Such dir die für deine (nicht ganz klar formulierte) Aufgabe hier die passende heraus.
-
Oh, Gallileo Computing.
http://blog.xalax.de/?p=45
-
volkard schrieb:
Oh, Gallileo Computing.
http://blog.xalax.de/?p=45Watt nüscht koscht' ...
volkard schrieb:
Interessante, lehrreiche Übersicht - Danke!
-
volkard schrieb:
Sehr seltsame Messungen. Ich habe da schon ganz andere Messungen gesehen. Ohne den Code der Messungen, damit man die Messungen nachvollziehen kann, halte ich das ganze für ziemlich wertlos. Es macht für mich zum Beispiel keinen Sinn, wieso eine
List<String>
langsamer sein sollte als eineArrayList
. Wahrscheinlich hat er beim nachschlagen der Elemente bei derArrayList
, das gefundene Element alsObject
belassen und nicht mehr zum ürsprünglichenString
zurückkonvertiert. Oder womöglich keineString
Objekte genommen bei derArrayList
?Grüssli
-
Micro-Becnhmarks sind mit Vorsicht zu geniessen ... aber die Interna sind interessant
-
Dravere schrieb:
Sehr seltsame Messungen. Ich habe da schon ganz andere Messungen gesehen. Ohne den Code der Messungen, damit man die Messungen nachvollziehen kann, halte ich das ganze für ziemlich wertlos. Es macht für mich zum Beispiel keinen Sinn, wieso eine
List<String>
langsamer sein sollte als eineArrayList
. Wahrscheinlich hat er beim nachschlagen der Elemente bei derArrayList
, das gefundene Element alsObject
belassen und nicht mehr zum ürsprünglichenString
zurückkonvertiert. Oder womöglich keineString
Objekte genommen bei derArrayList
?Du machst mich neugierig ... verrätst du denn auch, wo du ganz andere Messungen gesehen hast? Nach einer aussagekräftigen Gegenüberstellung - möglichst mit Code - suche ich nämlich schon sehr, sehr lange ...
-
schmidt-webdesign.net schrieb:
Nach einer aussagekräftigen Gegenüberstellung - möglichst mit Code - suche ich nämlich schon sehr, sehr lange ...
Wieso wiillst du das eigentlich wissen? Reicht es nicht aus die Komplexität der einzelnen Operationen der Container zu kennen?
-
witte schrieb:
schmidt-webdesign.net schrieb:
Nach einer aussagekräftigen Gegenüberstellung - möglichst mit Code - suche ich nämlich schon sehr, sehr lange ...
Wieso wiillst du das eigentlich wissen? Reicht es nicht aus die Komplexität der einzelnen Operationen der Container zu kennen?
Nein.
-
schmidt-webdesign.net schrieb:
Du machst mich neugierig ... verrätst du denn auch, wo du ganz andere Messungen gesehen hast? Nach einer aussagekräftigen Gegenüberstellung - möglichst mit Code - suche ich nämlich schon sehr, sehr lange ...
Kann ich leider nichts konkretes liefern, sonst hätte ich das schon oben getan. Wenn man Dinge über .Net sucht, dann stolpert man halt immer wieder mal irgendwo über solche Messungen. Ich speichere solche Funde aber nie ab, weil ich sie nicht für wichtig halte. Der allgemeine Konsens war bisher aber eindeutig, dass man von den Generics Collections einen Performanceschub erwarten darf.
Sehr deutlich fällt dieser aus, wenn man Valuetypes verwendet, was im Blog-Eintrag auch völlig ausser acht gelassen wurde. Da man sich dann nicht nur den Cast, sondern auch das Boxing und Unboxing einspart, was sehr teuer ist.Grüssli
-
Dravere schrieb:
Kann ich leider nichts konkretes liefern, sonst hätte ich das schon oben getan. Wenn man Dinge über .Net sucht, dann stolpert man halt immer wieder mal irgendwo über solche Messungen. Ich speichere solche Funde aber nie ab, weil ich sie nicht für wichtig halte.
Schade.
Dravere schrieb:
Der allgemeine Konsens war bisher aber eindeutig, dass man von den Generics Collections einen Performanceschub erwarten darf.
Das kann ich bestätigen - der Performanceschub ist in der Tat beachtlich.
Grüssli (nachgetragen
-
schmidt-webdesign.net schrieb:
Nein.
Was ist das denn für eine Antwort? Willst du oder kannst du es nicht begründen?
-
witte schrieb:
schmidt-webdesign.net schrieb:
Nein.
Was ist das denn für eine Antwort? Willst du oder kannst du es nicht begründen?
Deine Frage lautete: "Reicht es nicht aus die Komplexität der einzelnen Operationen der Container zu kennen?"
Meine Antwort: "Nein"
Was verstehst du nicht?
-
witte schrieb:
schmidt-webdesign.net schrieb:
Nein.
Was ist das denn für eine Antwort? Willst du oder kannst du es nicht begründen?
Jetzt stellst du dich aber dümmer als du bist, oder?
Zeit = 1 N log_2 N ticks
vs.
Zeit = 100 N log_2 N ticks
macht nen riesen Unterschied, nämlich Faktor 100.Und richtig interessant wird es dann bei
Zeit = N log_2 N ticks
vs.
Zeit = 100 N ticks
Wenn man dann weiss dass das Problem nicht grösser als z.B. N = 10^6 (~2^20) sein wird, wäre es ziemlich dumm den Algorithmus mit der "besseren" Komplexitätsklasse zu nehmen.
-
Das ist mir schon klar dass "teuere" Collectionen bei kleineren Elementmengen preiswerter sein können als solche mit großen Verwaltungsaufwand.
Mir war jedoch nicht klar dass es hier genau um diesen Fakt geht. O.K. wenn der Op eine sehr große IList<IList<String> > für seine Aufgabe baut sollte er sich möglicherweise etwas für die innere Collection einfallen lassen, aber ich würde ebenfalls die drei Strings in einer Klasse kapseln.
-
@witte:
Und was sollte dann deine etwas seltsam anmutende Frage an schmidt-webdesign.net?
-
hustbaer schrieb:
@witte:
Und was sollte dann deine etwas seltsam anmutende Frage an schmidt-webdesign.net?Ich empfinde es als unhöflich die Frage nur mit "Nein" zu beantworten. Diese Antwort ist mir zu diesem Zeitpunkt klar, das geht bereits aus seinen vorigen Beiträgen hervor. Als ich das gelesen habe tauchte der Begriff "Premature Optimization" in meinem Schädel auf und ich fragte mich ob er das was er tut richtig ist. Da er hier im Forum einige kompetente Antworten gegeben hat habe ich lieber nachgefragt. Ich hätte jetzt etwas erwartet wie "ich habe Projekte wo ich immens viele kleine Collectionen verwalten muß" oder "ich habe da mal so gelöst und feststellen müssen, dass es unter diesen Bedingungen..." oder meinetwegen gar keine Antwort. Auch wenn ich eine Entscheidungsfrage gestellt habe sollte doch klar sein dass ich etwas mehr haben wollte.
Aber ist ja nun auch egal. Ich weiß auch ehrlich nicht warum du dich jetzt da reinhängst.
-
Weil ich deine Frage für ebenso unpassend halte wie du die schlichte Antwort "nein".