[英]Retrieve value from Dictionary<ulong, object> with partial Key
我有一個accounts
詞典
accounts<ulong, accounts>
在我的代碼中,我有一個部分密鑰。
問題 :是否可以使用startswith
類的方法檢查是否可以通過部分關鍵帳戶account.id找到對象?
謝謝
盡管效率很低,但以下方法應該起作用:
IEnumerable<Account> FindByPartialId(Dictionary<ulong, Account> dictionary, ulong partialId)
{
var partialIdAsString = partialId.ToString();
var matchingKeys = dictionary.Keys.Where(k => k.ToString().StartsWith(partialIdAsString));
var matchingValues = matchingKeys.Select(k => dictionary[k]);
return matchingValues;
}
可能您可能想要保留字典的副本,其中鍵是直接字符串,然后在字典上進行搜索:
var accountsByStringKey = accounts.Keys.ToDictionary(k => k.ToString(), k => accounts[k]);
因此您可以執行.Where(k => k.StartsWith...
而不是.Where(k => k.ToString().StartsWith...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.