私はマップを持っている:キーの1つのフィールドでマップから値を取得する方法は?
public class MyKey {
...
private long id;
...
}
Map<MyKey, String> myMap;
MyKey.id
フィールドでmyMap
から値を取得する方法は?
私はマップを持っている:キーの1つのフィールドでマップから値を取得する方法は?
public class MyKey {
...
private long id;
...
}
Map<MyKey, String> myMap;
MyKey.id
フィールドでmyMap
から値を取得する方法は?
C#で回答を見つけてください。私はLinq式を使って同じことを達成できると思います。以下のサンプルコードを参考にしてください。
public class MyKey
{
public long ID { get; set; }
}
static void Main(string[] args)
{
Dictionary<MyKey, String> myMap = new Dictionary<MyKey, string>();
myMap.Add(new MyKey() { ID = 100 }, "One");
myMap.Add(new MyKey() { ID = 200 }, "Two");
myMap.Add(new MyKey() { ID = 300 }, "Three");
long searchKey = 200;
string value = myMap[myMap.Keys.FirstOrDefault(x => x.ID == searchKey)];
}
あなたは一致するものを見つけたり、新しい地図キーが 'O(1)'で – Eran
をMyKey.idされた場合、することはできませんを構築するためにすべてのエントリを反復処理する必要がありますどちらか。あなたの 'MyKey'が' MyKey.id'に基づいて 'equals'と' hashCode'を実装していない限り。この場合、適切な 'id'を持つ' MyKey'を使って 'get'を呼び出すことができます。 –
'equals'メソッドと' hashCode'メソッドをオーバーライドする必要があります。 –