2012-03-25 9 views

Antwort

26

PHP mischt das Konzept der Arrays und das Konzept der Wörterbücher (aka Hash-Tabellen, Hash-Maps, assoziative Arrays) in eine einzige array type.

In .NET und den meisten anderen Programmierumgebungen werden Arrays immer numerisch indiziert. Bei benannten Indizes verwendet ein dictionary statt:

var dict = new Dictionary<string, string> { 
    { "foo", "some foo value" }, 
    { "bar", "some bar value" } 
}; 

Im Gegensatz zu PHP-assoziativer Arrays, Wörterbücher in .NET sind nicht sortiert. Wenn Sie ein sortiertes Wörterbuch benötigen (aber wahrscheinlich nicht), stellt .NET sorted dictionary type zur Verfügung.

+0

Cool danke, werde antworten, wenn es mir erlaubt. – diggersworld

1

Betrachten Sie Hashtable in C#. Dies ist die Datenstruktur, die in C# funktioniert.

0

Sie können einen Dictionary<string, FooValue> oder einen ähnlichen Typ oder Sammlertyp verwenden oder, wenn Sie sich an ein Array halten müssen, einen Enum mit Ihren Etiketten definieren.

2

In einem Array, nein. Allerdings gibt es die sehr nützliche Dictionary Klasse, die eine Sammlung von KeyValuePair Objekten darstellt. Es ähnelt einem Array insofern, als es eine iterierbare Sammlung von Objekten mit Schlüsseln ist, aber allgemeiner, da der Schlüssel ein beliebiger Typ sein kann.

Beispiel:

Dictionary<string, int> HeightInInches = new Dictionary<string, int>(); 
HeightInInches.Add("Joe", 72); 
HeightInInches.Add("Elaine", 60); 
HeightInInches.Add("Michael", 59); 

foreach(KeyValuePair<string, int> person in HeightInInces) 
{ 
    Console.WriteLine(person.Key + " is " + person.Value + " inches tall."); 
} 

MSDN Documentation for Dictionary<TKey, TValue>

Verwandte Themen