Ich frage mich, ob der Index eines Arrays in C# statt des Standardindexwerts einen Namen gegeben werden kann. Was ich im Grunde suche, ist das C# Äquivalent des folgenden PHP Codes:Können Array-Indizes in C# benannt werden?
Prost.
Ich frage mich, ob der Index eines Arrays in C# statt des Standardindexwerts einen Namen gegeben werden kann. Was ich im Grunde suche, ist das C# Äquivalent des folgenden PHP Codes:Können Array-Indizes in C# benannt werden?
Prost.
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.
Cool danke, werde antworten, wenn es mir erlaubt. – diggersworld
Betrachten Sie Hashtable in C#. Dies ist die Datenstruktur, die in C# funktioniert.
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.
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.");
}
Sie wollen wirklich einen Hash. – seand