Ich habe eine Karte:Wie erhält man Wert von Map durch ein Schlüsselfeld?
public class MyKey {
...
private long id;
...
}
Map<MyKey, String> myMap;
Wie Wert von myMap
von MyKey.id
Feld bekommen?
Ich habe eine Karte:Wie erhält man Wert von Map durch ein Schlüsselfeld?
public class MyKey {
...
private long id;
...
}
Map<MyKey, String> myMap;
Wie Wert von myMap
von MyKey.id
Feld bekommen?
Die Antwort finden Sie in C#. Ich denke, wir können dasselbe mit einem Linq-Ausdruck erreichen. Bitte finden Sie den folgenden Beispielcode, der Ihnen hoffentlich hilft.
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)];
}
Ja, in java8 sieht das so aus: 'Map
Ok glücklich zu wissen, dass es dir geholfen hat ... Danke – VipinKV
werden Sie entweder iterieren alle Einträge eine Übereinstimmung zu finden oder eine neue Map zu bauen, wo der Schlüssel MyKey.id wird – Eran
In 'O (1)', kann man nicht. Es sei denn, Ihr 'MyKey' implementiert' equals' und 'hashCode' basierend auf' MyKey.id'; In diesem Fall können Sie 'get' mit einem' MyKey' mit der entsprechenden 'id' aufrufen. –
Sie müssen die Methoden 'equals' und' hashCode' überschreiben. –