Как выбрать из списка фильтрацию через IN - PullRequest
0 голосов
/ 20 декабря 2011

Q:

У меня есть список таких объектов:

List<object> entities = GetallEntities();

Первый объект в предыдущем списке: List<Books>.

Теперь я хочу получить все книги, которые id

существуют в следующем списке:

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

Ответы [ 2 ]

2 голосов
/ 20 декабря 2011
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));
2 голосов
/ 20 декабря 2011

Предполагая, что ваш класс 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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...