C# 将筛选器存储在自定义集合中并有条件地执行
我有一个包含对象集合的Cusom集合对象。然后,我将两个UI元素(网格和图表)绑定到这个对象。网格显示所有对象,图表显示同一集合的子集 我希望能够在集合中注册一个过滤器(Func?),并有条件地执行过滤器以创建子集集合 我真的不知道该怎么做。任何指针都会非常有用。您可以使用LINQ扩展方法或指示应将哪些元素放置在该图表中。只有在集合实现IEnumarable接口时才有可能 Where扩展方法的示例如下:C# 将筛选器存储在自定义集合中并有条件地执行,c#,.net,linq,C#,.net,Linq,我有一个包含对象集合的Cusom集合对象。然后,我将两个UI元素(网格和图表)绑定到这个对象。网格显示所有对象,图表显示同一集合的子集 我希望能够在集合中注册一个过滤器(Func?),并有条件地执行过滤器以创建子集集合 我真的不知道该怎么做。任何指针都会非常有用。您可以使用LINQ扩展方法或指示应将哪些元素放置在该图表中。只有在集合实现IEnumarable接口时才有可能 Where扩展方法的示例如下: var filteredItem = items.Where(i => i.type
var filteredItem = items.Where(i => i.type == typeYouLookFor)
它使用,所以您不必声明任何附加函数。您可以使用LINQ扩展方法或指示应在该图表中放置哪些元素。只有在集合实现IEnumarable接口时才有可能
Where扩展方法的示例如下:
var filteredItem = items.Where(i => i.type == typeYouLookFor)
它使用,因此您不必声明任何附加函数。您只需将Func传入Where()静态方法即可。输出将是一个新的IEnumerable集合,您可以绑定到UI元素。您注册的函数必须是
Func
类型
如果您想在使用过滤器和不使用过滤器之间切换,可能最容易使用“非过滤”功能:
Func<ItemInYourCollection, Boolean> filter = (a) => true;
if(filtering) filter = registeredFilter;
UI.Data = rawData.Where(filter);
Func filter=(a)=>true;
如果(过滤)过滤器=registeredFilter;
UI.Data=rawData.Where(过滤器);
只需将Func传入Where()静态方法即可。输出将是一个新的IEnumerable集合,您可以绑定到UI元素。您注册的函数必须是Func
类型
如果您想在使用过滤器和不使用过滤器之间切换,可能最容易使用“非过滤”功能:
Func<ItemInYourCollection, Boolean> filter = (a) => true;
if(filtering) filter = registeredFilter;
UI.Data = rawData.Where(filter);
Func filter=(a)=>true;
如果(过滤)过滤器=registeredFilter;
UI.Data=rawData.Where(过滤器);
您是否想要一组预定义的过滤器,有人可以在不知道实现细节的情况下进行选择?您是否想要一组预定义的过滤器,有人可以在不知道实现细节的情况下进行选择?