如何在具有特定字典值的列表中返回对象值

时间:2012-07-23 22:48:48

标签: c# dictionary

说我有一个对象:

public class Person
{
   public IDictionary<string, string> RoleTypes { get; set; }
}

其中角色类型的名称为键,描述为值:

  • 经理:做事的经理
  • 首席信息官:谁知道他们做了什么
  • CEO:没人知道他们做了什么。

所以现在我要说一个人名单:

IEnumerable people;

我想以某种方式从该名单中找回首席执行官:

people.Single(x => x.RoleTypes.Contains("CEO"));

嗯,甚至没有编译。

任何人都知道如何让它发挥作用?

2 个答案:

答案 0 :(得分:3)

你必须检查键(如果标题是字典的键):

people.Single(x => x.RoleTypes.ContainsKey("CEO"));

话虽如此,这种数据组织结构很奇怪 - 将标题和描述分开是更有意义的,因此它们不会在每个人中重复。用户可以只维护他们的标题列表,并且可以在其他地方查找该标题的说明。

答案 1 :(得分:1)

TryGetValue(key)不能这样做吗?