Я сейчас работаю над проектом, где у меня есть склад. Склад разделен на множество зон (AJ). Кроме того, на складе есть много товаров, которые разбросаны по разным зонам. Когда покупатель покупает товары в интернет-магазине, это происходит как заказ. Заказ содержит несколько продуктов и в каких зонах они находятся.
Кроме того, я установил кратчайший путь из зоны A во все остальные зоны. Это сделано для того, чтобы свести к минимуму время, которое рабочие должны идти пешком, когда собирают продукты с полок.
Итак, для пути у меня есть список строк, который содержит путь, то есть A, B, C, I. Также у меня есть список заказов, где свойство zone также является списком строк. Скажем, у меня есть список заказов, содержащий следующие зоны:
Заказ 1: A, C
Заказ 2: C, I
Заказ 3: B , C
Порядок 4: A, F
Есть ли способ, используя Linq, где я могу получить все заказы, где зоны равны зонам на моем пути? Так, например, в этом примере я бы получил только заказы 1, 2 и 3. Не 4, потому что 4 содержит зону F, которая не находится в указанном пути.
Я пробовал следующее, что не сработало , потому что он также вернул заказ 4:
var jobs = (from j in db.jobs select j).ToList();
List<string> path = new List<string> (){"A","B","C","I"};
var jobsInPath = jobs.Where(x => x.zones.Intersect(path).Any()).ToList();