Я пытаюсь выделить как можно больше андроида из бизнес-логики, чтобы ускорить процесс.Создание запроса LINQ на основе двух списков и массива объектов для параметров тестирования
Пунктирные вокруг кода У меня есть кусок LINQ, который выглядит как этот
var jobItemDoneTest = JobItemsData.GetJobIfDone(wheelpos, theOrder.GetOrderItemStockItemID);
var jobsDoneList = new JobItemsData(theOrder.OrderData.jobItemsID).JobItemDone;
var stillToDo = theOrder
.OrderItemsData
.Where(p => jobsDoneList.All(p2 => p2.orderItemStockItemID != p.orderItemStockItemID))
.Where(t => !t.description.Contains("2hr"))
.Where(t => !t.description.Contains("Staff"))
.ToList();
Другими словами, есть сравнение между двумя списками, чтобы отфильтровать некоторые результаты.
Что я пытаюсь сделать, это удалить экземпляры этого, чтобы создать общий метод в классе бизнес-объектов.
До сих пор я получил это
public List<T> GetWorkStillToDo<T, U>(List<T> orderItems, List<U> jobItems, params object[] searchList1, string searchList2)
{
var stillToDo = orderItems.Where(p=>jobItems.Add(p2=>p2.orderItemStockItemID != p.orderItemStockItemID);
}
Проблема заключается в том, что если я хочу, чтобы произвести поиск по различным свойствам при р => и p2=>
, а затем фильтр на котором условия, я получаю потерян и не может придумать способ, чтобы итерацию от п = 1 п в массиве searchList
объектов и включить их в LINQ
Является
p2=>searchList[0].ToString() != searchList2
разрешается в пределах LINQ и как я могу создать часть запроса?
Спасибо - будет ли это просто перед тем, где предложения в конце, или включить условие «Все» в начальное сравнение? – Nodoid
@Nodoid Я не совсем понимаю. Я предполагал, что вы синтезировали свой первый пример в универсальном методе, чтобы вы могли упорядочить свои '.Where'. Таким образом, в моем примере будет только метод «WhereAll». Кроме того, считаете ли вы, что просто клаузули свои предложения в один и тот же «Где»? – Bigsby
Да, я подумал о том, чтобы положить предложения в то же самое место, но по какой-то причине это давало мне большой удар по оригинальному способу, которым я обладал. Не знаю, почему. – Nodoid