SmartDeveloping Ответов: 1

Обнуление словаря данных после каждого запуска


У меня есть очень трудный вопрос, надеюсь, он будет иметь смысл. Я читаю два разных типа текстовых файлов и проверяю записи в словаре. Текстовые файлы могут иметь разные даты, поэтому мне нужно сбросить словарь после того, как он проверит один файл, и снова прочитать его через базу данных, чтобы получить новую дату текстового файла. Как мне заглушить словарь после каждого прогона?

Что я уже пробовал:

private Dictionary<DateTime, Dictionary<string, long>> DataByNum;
       private Dictionary<DateTime, Dictionary<string, long>> DataByID;

       private Dictionary<string, long> GetNumData(DateTime DailyFileDate)
       {
           DailyFileDate = DailyFileDate.Date;
           if (DataByNum == null || !DataByNum.ContainsKey(DailyFileDate))
           {
               CacheData(DailyFileDate);
           }
           return DataByNum[DailyFileDate];
       }

       private Dictionary<string, long> GetIDData(DateTime DailyFileDate)
       {
           DailyFileDate = DailyFileDate.Date;
           if (DataByID == null || !DataByID.ContainsKey(DailyFileDate))
           {
               CacheData(DailyFileDate);
           }
           return DataByID[DailyFileDate];
       }

       private void CacheData(DateTime DailyFileDate)
       {
           DailyFileDate = DailyFileDate.Date;

           if (DataByNum == null)
           {
               DataByNum = new Dictionary<DateTime, Dictionary<string, long>>();
           }
           if (DataByID == null)
           {
               DataByID = new Dictionary<DateTime, Dictionary<string, long>>();
           }


           var result = ExtractData(DailyFileDate);


           foreach (DataRow row in result)
           {
               var date = DateTime.Parse(row.GetString("FileDate")).Date;
               if (!DataByNum.ContainsKey(date))
               {
                   DataByNum[date] = new Dictionary<string, long>();
               DataByNum[date].Add(row.GetString("Num"), row.GetLong("RID").Value);
               }
               if (!DataByID.ContainsKey(date))
               {
                   DataByID[date] = new Dictionary<string, long>();
               DataByID[date].Add(row.GetString("CustomerID"), row.GetLong("RID").Value);
               }
           }

[no name]

yourDictionary.Очистить()?

SmartDeveloping

Есть ли способ, которым я могу построить только один словарь, в соответствии с которым я читаю файл?

[no name]

Поскольку ваш словарь, похоже, один и тот же, я не понимаю, почему вы думаете, что вам нужно иметь больше одного.

SmartDeveloping

Да, у меня возникли проблемы с преобразованием этого в один.

1 Ответов

Рейтинг:
11

#realJSOP

Вы можете либо позвонить dictionary.Clear(), или просто повторно создать его с помощью new.


SmartDeveloping

Есть ли способ загрузить только один словарь за раз? В это время он загружает оба.