我有accounts
的字典
accounts<ulong, accounts>
在我的代码中,我有一个部分密钥。
问题:是否可以使用startswith
之类的方法来检查是否可以找到具有部分关键account.id的对象?
谢谢
答案 0 :(得分:2)
尽管效率很低,但以下方法应该起作用:
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...