我有一个按钮列表List<Button> buttons
,每个按钮都包含一个标记对象。
然后是字典对象
Dictionary<int, string> buttonGroups = new Dictionary<int, string>();
如何使用LINQ从List
返回标记与List<Button> buttons
中的键匹配的buttonGroups
个按钮?
答案 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()