Рейтинг:
0
OriginalGriff
Использовать LINQ, которая кроме способ:
Dictionary<string, string> d1 = new Dictionary<string, string>();
d1.Add("Joe", "2, Barfield Way");
d1.Add("Mike", "17, Apollo Avenue");
d1.Add("Jane", "69, Lance Drive");
Dictionary<string, string> d2 = new Dictionary<string, string>();
d2.Add("Joe", "2, Barfield Way");
d2.Add("Jane", "69, Lance Drive");
var diff = d1.Except(d2);
Member 13911288
Спасибо за ответ, у моих словарей есть время в формате HH:mm. Словарь 1 имеет время с 00:00 до 23:45, а словарь два имеет случайные часы, такие как 00:15, 00:45, 15:00. Вот мой словарь вкратце
Dictionary1
(startdttm1,"00:00")
(enddttm1,"00:15")
(startdttm2,"00:15")
(enddttm2,"00:30")
(startdttm3,"00:30")
(enddttm4,"00:45")
......
(startdttmn,"23:30")
(enddttmn,"23:45")
теперь мой второй словарь имеет бронирование в случайном порядке
(startdttm1,"00:00")
(enddttm1,"00:30")
(startdttm2,"02:00")
(enddttm1,"02:30")
Итак, как теперь сравнить словарь 1 со словарем 2, и мне нужно выбрать значения из словаря 1, которые больше по значениям, чем словарь 2? Я могу датировать время.Проанализируйте и сравните два раза, но дело в том, что я не могу получить точные значения из словаря 1, которые больше, чем все значения в словаре 2.
Словарь 1 большой, а словарь 2 маленький.
OriginalGriff
Во-первых, измените свое хранилище.
Никогда не храните данные в строках, если есть более подходящий тип данных - в данном случае Timespan, который имеет операторы сравнения.
Хранение такого времени начала и окончания также является плохой идеей, так как все сравнения будут строковыми - и они выполняются путем сравнения символов по символам, причем весь результат зависит от результата первого различия. Это Менас, что любая идея порядка сортировки вылетает в окно.
Во-вторых, не пользуйтесь словарем.
Словари не сортируются: они хэшируются, поэтому они не сохраняют порядок, в котором вы вставляете значения.
Я думаю, что у вас здесь есть некоторые серьезные проблемы, и никакое количество исправлений не решит их "хорошим способом" - вам нужно вернуться к началу сбора данных и улучшить весь процесс хранения - на данный момент он фатально испорчен и будет только продолжать доставлять вам все больше и больше проблем, пока вы не разберетесь с ним должным образом.
Member 13911288
Итак, что вы предлагаете в этом случае, когда мне нужно сравнить две коллекции значений datetime?
OriginalGriff
Я не могу ничего предложить - я понятия не имею, что ваша домашняя работа просит вас сделать, или как выглядит остальная часть вашего кода.
Я понятия не имею, почему вы храните то, что, или где вы получаете это от - только вы знаете, что!
И как я уже сказал - Все ваше хранилище данных является проблемой и нуждается в пересмотре. Поймите это правильно, и сравнение либо станет очевидным, либо, возможно, ненужным - в любом случае, нет смысла пытаться исправить проблему здесь, если вся основа остального вашего кода будет изменена.
Member 13911288
Что делать, если я преобразую два словаря в список значений, сравниваю оба и извлекаю только те значения, которые больше списка 2? Можете ли вы что-нибудь предложить по этому поводу?
OriginalGriff
Откуда мне знать? Я понятия не имею, как это повлияет на остальную часть вашего кода! :смеяться:
Одна из самых трудных вещей, которую разработчик должен узнать, - это когда нужно отпустить. Когда усилия, которые вы вложили в достижение этой точки, должны быть списаны на опыт и кучу работы, выброшенной из-за фундаментальной проблемы, вызванной плохим решением прямо в начале.
И я знаю, что ты не хочешь этого делать. Но поверьте мне, вы сделали кодирование эквивалентным попытке создать гоночный велосипед, начав с одного колеса и двигателя из грузовика Mack...