我有字典的集合。
public class Bills
{
public Dictionary<string, string> billList { get; set; }
}
从此类 'Bill' 的实例列表中List<Bills> allBills
,我将如何获取 key 等于 'User' 和 name 等于 'Nick' 的所有记录
其他答案都没有利用字典的查找速度:
var matches = allBills
.Where(dict => dict.billList.ContainsKey("User"))
.Where(dict => dict.billList["User"] == "Nick");
string key = "User";
string name = "Bill";
if (billList.ContainsKey(key))
{
string result = billList[key];
if (result == name)
return result;
}
return null; // key and names did not match
字典永远不会出现多次相同的键,所以我想知道您是否不应该使用 aDictionary<string, Bill>
代替,在这种情况下,代码看起来更像这样:
return billList.Where(kvPair => kvPair.Value.Key == key &&
kvPair.Value.Name == name).Select(kvPair => kvPair.Value);
此代码假定Bill
该类包含一个Key
和一个Name
字段。