2011-07-01 14 views
5

Chciałbym zbudować strukturę danych w postaci tablicy w pamięci z 4 kolumnami, dzięki czemu mogę wyszukać wartości w oparciu o dowolną kombinację kolumn (np. Używając linq). Czy istnieje wbudowany typ danych dla tego lub czy muszę go samodzielnie utworzyć (oczywiście nie mogę)?Struktura danych tabeli w pamięci

Odpowiedz

5

Chyba że masz coś konkretnego na myśli, chciałbym zadeklarować typ z 4 mieszkań o odpowiednich nazw i typów, tj

public class SomethingSuitable { 
    public int Foo {get;set;} 
    public string Bar {get;set;} 
    public DateTime Blap {get;set;} 
    public float Blip {get;set;} 
} 

i używać listę/tablicy/słownik etc, jak jest to konieczne, lub po prostu

data.Single(x => x.Bar == "abc"); 

itp

+0

Czy istnieje pojęcie indeksowania/jakiś sposób, aby poprawić wyszukiwanie w kolekcji dla niektórych pól? Domyślam się, że trzeba utworzyć słowniki z kluczem złożonym z pól zapytania, a wyniki będą odnosić się do powiązanego obiektu bazowego; ale to nie wydaje się tak czyste, jak zwykłe powiedzenie "ta kolekcja zawiera te obiekty, właściwości, które chciałbym zoptymalizować pod kątem zapytań, to te". – JohnLBevan

2

Zobacz DataTable

+0

To było szybkie. Dzięki. Myślałem, że DataTable był przeznaczony tylko dla bazy danych i innych rzeczy. – Steven

1

powiesz po prostu:

var dataStructure = new[] { 
    new { col1 = "something", col2 = "something else", col3 = 12, col4 = true }, 
    new { col1 = "ha", col2 = "ha ha", col3 = 356, col4 = false }, 
    new { col1 = "grrr", col2 = "grr grr", col3 = 213, col4 = true } 
}; 
3

bym sobie wyobrazić, prawdopodobnie chcesz użyć czegoś jak List<Tuple<T1,T2,T3,T4>>

1

można użyć DataTable lub nawet wypełnić List<FourColClass> które przylegają do typów danych od Państwa wymagań. FourColClass byłaby klasą z właściwościami jako kolumnami.

Powiązane problemy