Dynamic LINQ on IEnumerable?

前端 未结 2 616
野性不改
野性不改 2021-01-01 18:37

Say i need to filter a generic list with a dynamic query (List l; var x = l.Where(*dynamic query*))

How would i do this using LINQ? (Curre

相关标签:
2条回答
  • 2021-01-01 19:11

    You can use the FindAll() method which takes a predicate. Here is a basic example.

    List<string> stringList = new List<string>(new string[]{"Smith", "Johnson", "Jordan","Doe"});
    
    List<string> filteredStringList = stringList.FindAll(x => x == "Smith");
    

    Also the Find method returns a single item.

    There is also an example project on MSDN for executing dynamic LINQ queries on both IEnumerable and IQueryable. You can reuse the DynamicQueryable class from it. Here is the link. The project is inside the C# samples project.

    0 讨论(0)
  • 2021-01-01 19:13

    Assuming you mean a string-based query: the dynamic LINQ library will work fine; just call .AsQueryable() first:

    string s = *dynamic query*
    var qry = l.AsQueryable().Where(s);
    

    This gives you an IQueryable<T> wrapper around your list, which provides access to the dynamic LINQ extension methods.

    0 讨论(0)
提交回复
热议问题