通过标签从字典c#中获取按钮

本文关键字:获取 按钮 字典 标签 | 更新日期: 2023-09-27 18:19:45

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

然后一个字典对象

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

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

通过标签从字典c#中获取按钮

buttons.Where(b => buttonGroups.ContainsKey((int)b.Tag))
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();

试试这个

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