【问题标题】:How to select from list filtering through IN如何通过IN从列表过滤中选择
【发布时间】:2011-12-20 10:00:42
【问题描述】:

问:

我有一个这样的对象列表:

List<object> entities = GetallEntities();

上一个列表中的第一个对象是:List<Books>

现在我想得到id的所有书籍

存在于以下列表中:

List<string> BookIds = new List<string>();

【问题讨论】:

    标签: c# asp.net linq list casting


    【解决方案1】:

    假设您的Books 类有一个Id 属性并且一个实例代表一本书:

    // Get the first element of your entity-list which is of type `List<Books>`
    List<Books> bookList = entities.OfType<List<Books>>().First();
    List<string> BookIds = new List<string>();
    // fill your id list here ...
    
    // filter your books by the list of ids
    IEnumerable<Books> filteredBooks = 
                   bookList.Where(b => BookIds.Any(id => id == b.Id);
    

    【讨论】:

      【解决方案2】:
      public class Book
      {
          public string id { get; set; }
      }
      

      ...

      List<object> entities = new List<object> { new Book { id = "1" }, new Book { id = "2" } };
      List<string> bookIds = new List<string> { "2" };
      
      IEnumerable<object> books = entities.Where(e => e is Book && bookIds.Contains(((Book)e).id));
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-02-12
        • 2018-07-08
        • 2017-09-09
        • 2011-02-11
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多