Member 14169626 Ответов: 1

Как я могу использовать where вместо contains?


С точки зрения производительности, я хочу использовать contains вместо where. Как я могу создать запрос ниже, не используя contains?
var t=myentities.Employee.WHERE(x=>x.EmployeeID ==123 && myList.Any(y=>x.BranchID.Contains)).ToList();


Что я уже пробовал:

var myList=новый список<string>();

foreach(var item in Listed)
{ 
    myList.Add(item);
}

var t=myentities.Employee.WHERE(x=>x.EmployeeID ==123 && myList.Any(y=>x.BranchID.Contains)).ToList();

1 Ответов

Рейтинг:
1

phil.o

Это не одно и то же. Where ожидает предикат в качестве аргумента, который используется для фильтрации элементов в коллекции, и возвращает отфильтрованное перечисление. Contains ожидает элемент в качестве аргумента и возвращает его true или false в зависимости от того, присутствует ли аргумент в коллекции.
Более того, предоставленный вами кодовый блок даже не будет компилироваться, так как вы не передадите ему никакого аргумента. Contains метод (который, на самом деле, вы используете, как если бы это было свойство). И, если BranchID переменная не является списком, она не имеет никакого значения. Contains и метод тоже.

Возможно, если бы вы могли описать то, что вы действительно ожидаете от вашего блока кода, наряду с типом переменных, которые вы используете, мы смогли бы предложить конкретное решение.