Saya mencoba memegang daftar item dalam koleksi dengan kunci pilihan saya. Di Jawa, saya cukup menggunakan Peta sebagai berikut:
class Test {
Map<Integer,String> entities;
public String getEntity(Integer code) {
return this.entities.get(code);
}
}
Apakah ada cara yang setara untuk melakukan ini di C #?
System.Collections.Generic.Hashset
tidak menggunakan hash dan saya tidak bisa mendefinisikan kunci tipe kustom
System.Collections.Hashtable
bukan kelas generik
System.Collections.Generic.Dictionary
tidak memiliki get(Key)
metode
c#
java
generics
collections
zmbq
sumber
sumber
O(lg(n))
seperti Java? Saya pikir tidakKamus <,> adalah padanannya. Meskipun tidak memiliki metode Get (...), ia memiliki properti yang diindeks bernama Item yang dapat Anda akses di C # secara langsung menggunakan notasi indeks:
Jika Anda ingin menggunakan jenis kunci khusus maka Anda harus mempertimbangkan untuk mengimplementasikan IEquatable <> dan mengesampingkan Persamaan (objek) dan GetHashCode () kecuali jika kesetaraan default (referensi atau struct) cukup untuk menentukan kesetaraan kunci. Anda juga harus membuat tipe kunci Anda tidak dapat diubah untuk mencegah hal-hal aneh terjadi jika kunci dimutasi setelah dimasukkan ke dalam kamus (misalnya karena mutasi menyebabkan kode hash-nya berubah).
sumber
sumber
TryGetValue
, karenaval
akan diberikannull
(yaitudefault(string)
) jika kunci tidak ada.