2010-12-23 5 views
-1

Welche Möglichkeiten gibt es, um Daten im .Net-Speicher (oder allgemein) darzustellen?
Es wäre großartig, wenn Daten nach Schlüssel (oder mehreren Schlüsseln) sortiert und nachgeschlagen werden könnten. Wir denken über die Verwendung von Sammlungen, Arrays, Auflistungen von Sammlungen/Arrays. Ein Objekt wäre in mehreren Sammlungen (eins sortiert asc, andere desc, etc.).Mögliche Möglichkeiten zur Darstellung von Daten im Speicher (.net)

Vielleicht ist dies keine gute Idee, und wir würden gerne andere mögliche Lösungen hören.

Danke

Antwort

1

Was sind die Möglichkeiten, Daten im Speicher in .NET (oder allgemein) darstellen?

In .NET haben Sie zwei Arten: value types and reference types, die im Speicher unterschiedlich gespeichert werden könnten. Es liegt auch in der Verantwortung der CLR, zu entscheiden, wie Daten im Speicher dargestellt werden sollen, damit sich der Entwickler keine Gedanken darüber machen muss.

Es wäre toll, wenn die Daten sortiert werden konnte und sah durch Schlüssel (oder mehrere Schlüssel) bis

Sie können an der Dictionary<TKey, TValue> Klasse einen Blick darauf werfen. Sie haben auch static arrays, dynamic lists, ... (diese Liste ist enorm)

+0

Hi Darin, welche Struktur benutzt du die meiste Zeit? Wörterbuch oder etwas anderes? Danke –

+0

@Das ist es, die Antwort hängt davon ab, was ich versuche zu tun. –

+0

Nehmen wir an, die Buchhaltungs-App muss viele Ihrer Transaktionen im Arbeitsspeicher speichern. Sie müssen nach Datum, Typ, Status, Kundennummer etc. zugänglich sein. Je nach Wunsch möchten Sie diese nach einem dieser Parameter filtern. Welche Datenstruktur sollte die App-Nutzung buchen? Vielen Dank. –

0

Wie Mud sagt, dies ist eine ziemlich allgemeine Frage, so dass Sie möglicherweise etwas genauer für eine genaue Antwort für das, was Sie wollen, sein müssen.

Im Allgemeinen bietet .NET alle "normalen" Sammlungstypen (Wörterbuch, Liste usw.) wie alle anderen guten Sprachen. Darüber hinaus stellt .NET LINQ zur Verfügung, das hervorragend zum Sortieren und Abfragen von Sammlungen geeignet ist. z.B.

var array = new string[] {"banana", "pineapple", "apple", "cherry"}; 

// basic sorting 
var sortedArray = array.OrderBy(a => a).; 

foreach (var s in sortedArray) 
{ 
    Console.WriteLine(s); 
} 

// filtering 
var filteredArray = array.Where(a => a.Contains("apple")); 

foreach (var f in filteredArray) 
{ 
    Console.WriteLine(f); 
} 

LINQ funktioniert in jeder Art von Sammlung. Um es zu verwenden, benötigen Sie .NET 3.5 oder höher und Sie müssen using System.Linq hinzufügen, um auf die erforderlichen Erweiterungsmethoden zuzugreifen.

+0

Hallo Tim, was ist deine Erfahrung bezüglich der Leistung von LINQ?Ist es in Anwendungen einsetzbar, in denen Leistung nicht kritisch ist, aber sehr wichtig ist? Danke –

+0

Leistung ist im Allgemeinen ausgezeichnet, vorausgesetzt, Ihre Abfragen sind gut aufgebaut. Tatsächlich ist Leistung in vielen Fällen * besser * als bei "herkömmlichem" Code, weil die Abfrage aufgebaut wird, aber nicht wirklich ausgeführt wird, bis Sie die Ergebnisse benötigen. Dies kann die Anzahl der DB-Netzwerk-Roundtrips reduzieren oder die Daten reduzieren, die verarbeitet werden müssen. Siehe http://blogs.msdn.com/b/charlie/archive/2007/12/09/deferred-execution.aspx. Ich würde auch LinqPad zum Lernen von Linq und den Test hier empfehlen: http://www.albahari.com/nutshell/linqquiz.aspx –

Verwandte Themen