można zrobićArray, które mogą być accesed używając array [ 'name'] w C#
array['Name'];
W języku C#
Zamiast:
array[0];
Wiem, że można to zrobić w PHP, ale istnieje equivallent dla C#, choć im myślenia highley mało prawdopodobne: (
można zrobićArray, które mogą być accesed używając array [ 'name'] w C#
array['Name'];
W języku C#
Zamiast:
array[0];
Wiem, że można to zrobić w PHP, ale istnieje equivallent dla C#, choć im myślenia highley mało prawdopodobne: (
to się nazywa Dictionary
w C# . Używając generyków, możesz indeksować według dowolnego typu. Podobnie jak:
Dictionary<Person, string> dictionary = new Dictionary<Person, string>();
Person myPerson = new Person();
dictionary[myPerson] = "Some String";
...
string someString = dictionary[myPerson];
Console.WriteLine(someString);
To oczywiście drukuje "Some String" na konsoli.
Jest to przykład elastyczności słownika. Możesz to zrobić również z indeksem, tak jak prosiłeś.
Dictionary<string, whatyouwanttostorehere> myDic =
new Dictionary<string, whatyouwanttostorehere>();
myDic.Add("Name", instanceOfWhatIWantToStore);
myDic["Name"];
ty ... Nice ... –
To co miałem na myśli, przepraszam, to się nie pojawiło całkowicie za pierwszym razem. –
Tablice nie działają tak w C#, ale można dodać właściwość indeksatora do dowolnej klasy:
class MyClass
{
public string this[string key]
{
get { return GetValue(key); }
set { SetValue(key, value); }
}
}
Następnie można napisać rodzaj sprawozdania pytasz przeciwko temu:
MyClass c = new MyClass();
c["Name"] = "Bob";
W ten sposób zaimplementowano oparty na łańcuchach indeksowany dostęp do Dictionary<TKey, TValue>
, NameValueCollection
i podobnych klas. Możesz również zaimplementować wiele indeksatorów, na przykład jeden dla indeksu i jeden dla nazwy, po prostu dodaj inną właściwość jak powyżej z innym typem parametru.
Kilka wbudowanych klas ramowe mają już te indeksujących, w tym:
SortedList<TKey, TValue>
Dictionary<TKey, TValue>
SortedDictionary<TKey, TValue>
NameValueCollection
Lookup<TKey, TValue>
(w System.Linq
)... i więcej. Wszystkie są zaprojektowane do nieco innych celów, więc będziesz chciał przeczytać każdą z nich i sprawdzić, która z nich jest odpowiednia do twoich wymagań.
Dzięki, świetna odpowiedź dla laters ....: D –
Yeap, spójrz na 'System.Collections' http://msdn.microsoft.com/en-us/library/system.collections.aspx – xandercoded
@xandercoded, prawdopodobnie chcesz' System.Collections.Generic'. 'System.Collections' jest nietypową formą z .net 1. – Kobi
Dziękuję ........: D –