我有地圖:如何通過一個密鑰字段從Map中獲取值?
public class MyKey {
...
private long id;
...
}
Map<MyKey, String> myMap;
如何通過MyKey.id
場得到myMap
價值?
我有地圖:如何通過一個密鑰字段從Map中獲取值?
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)];
}
你要麼必須遍歷所有條目找到匹配或建立一個新的地圖,關鍵是MyKey.id – Eran
在'O(1)',你不能。除非你的'MyKey'基於'MyKey.id'實現'equals'和'hashCode';在這種情況下,你可以用'MyKey'和相應的'id'調用'get'。 –
您必須重寫'equals'和'hashCode'方法。 –