/// <summary> /// ファイルデータDictionary取得 /// </summary> /// <typeparam name="TKey">DictionaryのKey型</typeparam> /// <typeparam name="TEntity">CSVのデータModel</typeparam> /// <param name="filePath">ファイルFullPath</param> /// <param name="keySelector">DictionaryのKey項目Selector</param> /// <returns>ファイルデータDictionary</returns> public virtual IDictionary<TKey, TEntity> GetFileDataToDictionary<TKey, TEntity>(string filePath, Func<TEntity, TKey> keySelector) where TEntity : class, new() { using (var reader = new CsvReaderWrap(new StreamReader(filePath), CsvConf)) { return reader.GetRecords<TEntity>().ToDictionary(keySelector); } }
/// <summary> /// ファイルデータ取得 /// </summary> /// <typeparam name="TEntity">CSVのデータModel</typeparam> /// <param name="filePath">ファイルFullPath</param> /// <returns>ファイルデータ</returns> public virtual IEnumerable<TEntity> GetFileData<TEntity>(string filePath) where TEntity : class, new() { using (var reader = new CsvReaderWrap(new StreamReader(filePath), CsvConf)) { // CsvReader.GetRecordsのIEnumerable<T>は遅延実行。 // Using外で利用する為に、ToArray()で実体化している。 return reader.GetRecords<TEntity>().ToArray(); } }
/// <summary> /// コンストラクタ(File読込設定情報は、MyCsvReaderの初期値を設定) /// </summary> public MyCsvReader() { CsvConf = CsvReaderWrap.GetInitCsvConf(); }