我有一个MyGrid.Children UIElementCollection,我想找到其中样式设置为StyleA的所有矩形,并将它们设置为StyleB。
如果可能的话我想使用LINQ,所以我可以避免讨厌的嵌套循环。
像这样的伪代码:
var Recs = from r in MyGrid.Children
where r.Style == StyleA && r.GetType() == typeof(Rectangle)
select r as Rectangle;
然后:
foreach(Rectangle r in Recs)
r.Style = StyleB;
LINQ大师可以帮助我改进我的LINQ-fu吗?
答案 0 :(得分:15)
您的代码几乎是正确的,但UIElements没有Style属性...您可以根据类型过滤网格的子代:
var recs = from r in MyGrid.Children.OfType<Rectangle>()
where r.Style == StyleA
select r;
foreach(Rectangle r in recs)
r.Style = StyleB;