-9

我有字典的集合。

public class Bills
    {
        public Dictionary<string, string> billList { get; set; }
    }

从此类 'Bill' 的实例列表中List<Bills> allBills,我将如何获取 key 等于 'User' 和 name 等于 'Nick' 的所有记录

4

2 回答 2

4

其他答案都没有利用字典的查找速度:

var matches = allBills
        .Where(dict => dict.billList.ContainsKey("User"))
        .Where(dict => dict.billList["User"] == "Nick");
于 2013-03-27T10:53:31.083 回答
1
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字段。

于 2013-03-27T10:58:09.037 回答