Как проверить, что значение, разделенное запятыми, содержит другой массив в linq
У меня есть два стола Процесс И заказано.
теперь мне нужно получить процесс, который содержит все costCenterID из списка деталей заказа.
List<Process > process= new List<Process >() { new Process{Id=1, Name="Process 01", CostCenter="1,2,3,4" , companyID = 1 }, new Process{Id=2, Name="Process 02", CostCenter="1,4,10" , companyID = 1 }, new Process{Id=3, Name="Process 03", CostCenter="1,2,5" , companyID = 1 }, } List<orderDetails> orderDetails= new List<orderDetails>() { new orderDetails{ Id=1, Name="order 01", CostCenterId ="1" , companyID = 1}, new orderDetails { Id=2, Name="order 02", CostCenterId="2" , companyID = 1}, }
Я пробовал этот код , но он не сработал, заметьте, использовал linq
var orderDetails = db.OrderDetails.Where(c => c.OrderId == order.Id); var orderCostCenter = orderDetails.Select(c => c.CostCenterId).ToArray(); var listProcess = process.where (c=>c.companyID == 1 && c.CostCenter.split(',').containt(orderCostCenter)).firstorDefault();
результат запроса linq возвращает два столбца=
new Process{Id=1, Name="Process 01", CostCenter="1,2,3,4" , companyID = 1 }, new Process{Id=3, Name="Process 03", CostCenter="1,2,5" , companyID = 1 },
Что я уже пробовал:
Я устал искать и решать этот вопрос, пожалуйста, помогите мне.
BillWoodruff
Что не так с текущим выходом ?
Пожалуйста, покажите пример того, что будет правильным выходом.
Предложение: рассмотрите возможность использования флагов перечисления на центр затрат, а не массив строк, чтобы упростить анализ.
Waleed Abukatab
мне нужен этот вывод с помощью linq :
{ИД=1, имя="процесс 01", центр затрат="1,2,3,4" , companyID = 1 },
{ИД=3, имя="процесс 03", центр затрат="1,2,5" , companyID = 1 },