我有以下测试代码来搜索通用列表:

public void DoSearch(string searchTerm)
{

IList<MyEntity> entities = GetCollectionOfEntities();

IList<MyEntity> results = entities.Where(d => d.Description.Contains(searchTerm)).ToList();

}


我想通过参数传递顺序(这将是MyEntity的属性),并且当然要根据该结果对我的结果进行排序。我了解LINQ使用OrderBy,但不了解如何通过MyEntity的属性进行订购。

最佳答案

您只需使用Func<TSource,TKey>即可指定要订购的属性:

DoSearch("foo", e => e.SomeProperty);

// ...

public void DoSearch<TKey>(string searchTerm, Func<MyEntity, TKey> orderBy)
{
    IList<MyEntity> entities = GetCollectionOfEntities();

    IList<MyEntity> results = entities
                              .Where(e => e.Description.Contains(searchTerm))
                              .OrderBy(orderBy)
                              .ToList();

    // etc
}

关于c# - IList-LINQ进行过滤和排序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2041488/

10-10 19:01