the code below gives me the following error:
CS1061 UIElementCollection does not contain a definition for Where and no accessible extension method Where accepting a first argument of type UIElementCollection could be found (are you missing a using directive or an assembly reference?)
var object = main.Children.Where(c => "platform1".Equals(c.Tag)).First();
main.Children.Remove(object);
How to get it to work?
Thanks!
CodePudding user response:
The Children property type UIElementCollection does not implement the generic interface IEnumerable<T>, so you can't use it as source of the Enumerable extension methods like Where.
You would have to add a type cast method like
var obj = main.Children.Cast<UIElement>().Where(...);
Since you also want to access the Tag property of the FrameworkElement subclass, use something like this instead:
var obj = main.Children
.OfType<FrameworkElement>()
.Where(c => "platform1".Equals(c.Tag))
.First();
Or shorter:
var obj = main.Children
.OfType<FrameworkElement>()
.FirstOrDefault(c => "platform1".Equals(c.Tag));
