1

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

然后是一个字典对象

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

如何从它们的标签与使用 LINQ的键匹配的地方返回一个List按钮?List<Button> buttonsbuttonGroups

4

3 回答 3

5
buttons.Where(b => buttonGroups.ContainsKey((int)b.Tag))
于 2013-06-24T14:22:42.990 回答
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();
于 2013-06-24T14:26:10.063 回答
1

试试这个

listButtons.Where (button => !string.IsNullOrEmpty(button.Tag) && buttonGroups.Containskey (int.Parse(button.Tag)).ToList()
于 2013-06-24T14:24:58.280 回答