Построить динамический запрос с использованием дерева выражений - PullRequest
0 голосов
/ 03 октября 2018

Я работаю над динамическим построением запросов в LINQ с использованием дерева выражений.

Я взял ссылку на следующий пост https://www.codeproject.com/Tips/582450/Build-Where-Clause-Dynamically-in-Linq

Как мне построить выражение, если я хочу проверитьвесь элемент в списке содержится в другой коллекции или нет?

У меня есть класс Person

public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}

, и у меня есть список

        List<Person> personList = new List<Person>()
        {
            new Person{ Name = "Shekhar", Age = 31},
            new Person{ Name = "Sandip", Age = 32},
            new Person{ Name = "Pramod", Age = 32},
            new Person{ Name = "Kunal", Age = 33}
        };

У меня есть другой список

List<string> nameList = new List<string>() { "Sandip", "Prashant" };

Как я могупостроить дерево выражений, чтобы проверить все элементы списка «nameList», содержащиеся в «personList», и дать результат true или false?

Ответы [ 2 ]

0 голосов
/ 03 октября 2018

попробуйте это:

bool contained = !personList.Select(l=>l.Name).Except(nameList).Any();
0 голосов
/ 03 октября 2018

попробуйте это:

public bool Find(List<string> nameList, List<Person> personList)
    {
        foreach (var name in nameList)
            if (personList.FirstOrDefault(person => person.Name == name) != null)
            {
                // Find
                return true;
            }
        return false;
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...