У меня есть словарь для одного словаря, и мне нужно найти какие-либо несоответствия в данных для отправки пользователям. Ниже мой запросC# LINQ Найти разницу в одном для многих
var FinalQuery = from final in masterquery
where final.gpa_vsl != string.Empty || final.eta1_datetime.Date.CompareTo(final.eta_date.Date) != 0 ||
final.ata_date > DateTime.MinValue || final.cfit_vsl != final.gpa_vsl
group final by final.file_no into newGroup
orderby newGroup.Key
select newGroup;
var Finaldict = FinalQuery.ToDictionary(g => g.Key, g => g.ToList());
foreach(var file in FinalDict) {
if (file.Value.Count() > 1) {
//Here I need to find out if all eta1 and all vessel match
//below is what I am trying to do with Linq
bool match = from f in file.Value
where file.Value.Count(f => f.eta1_date.CompareTo(f.eta1_date)) = file.Value.Count()
select true;
//What I am trying to do is if all eta1 dates match return a total int to compare to the total count of values.
}
}
словарь выглядит следующим образом:
Key - FileNo = 123
Value - Container = 123 , eta1 = 2/20/17, ata1 = 2/20/17, vessel = boat1
Value - Container = 456, eta1 = 2/18/17, ata1 = 2/18/17, vessel = boat2
Value - Container = 789, eta1 = 2/20/17, ata1 = 2/20/17, vessel = boat1
Value - Container = 987 , eta1 = 2/20/17, ata1 = 2/20/17, vessel = boat1
Я открыт для любых предложений. Необходимо найти, что информация о контейнере 456 не соответствует другим. Надеюсь, что я предоставил достаточно информации
вы могли бы разработать на том, что представляет собой несоответствие в вашем примере словаря? – pquest
Цель состоит в том, чтобы все этаны, ata1 и сосуды соответствовали друг другу. В приведенном выше примере eta1 не соответствует остальной части eta1. Если все не совпадают, мне нужно вернуть исключение пользователю –
Просто обратите внимание, что 'orderby', за которым следует' .ToDictionary', уничтожает заказ, поскольку словарь не гарантирует никакого заказа при перечислении – tinudu