从字典c#获取标签按钮

时间:2013-06-24 14:21:03

标签: c# .net linq list button

我有一个按钮列表List<Button> buttons,每个按钮都包含一个标记对象。

然后是字典对象

Dictionary<int, string> buttonGroups = new Dictionary<int, string>();

如何使用LINQ从List返回标记与List<Button> buttons中的键匹配的buttonGroups个按钮?

3 个答案:

答案 0 :(得分:5)

buttons.Where(b => buttonGroups.ContainsKey((int)b.Tag))

答案 1 :(得分:3)

List<Button> matches = buttons.Where(b => buttonGroups.Keys.Any(k => k == b.Tag)).ToList(); 

或使用连接(可能稍微快一些):

List<Button> matches =    
    (from b in buttons
    join g in buttonGroups.Keys
        on b.Tag == g
    select b)
    .ToList();

答案 2 :(得分:1)

试试这个

listButtons.Where (button => !string.IsNullOrEmpty(button.Tag) && buttonGroups.Containskey (int.Parse(button.Tag)).ToList()