Мне нужно разобрать CSV-файл, получить конкретные столбцы и преобразовать значения в double. Мой код ниже работает отлично, если все значения могут быть преобразованы в double :). Но как мне обновить код, если значение будет равно «TRUE»/«FALSE»?Преобразование значения в double с конкретным провайдером в C#
Код:
dt = GetDataTableFromCsv("my_csv.csv");
// Gets the column of the dependent/indepent variable
// I need structure double [][]
var input = dt.AsEnumerable().Select(r => independentNames.Where(i => dt.Columns.Contains(i)).Select(c => Convert.ToDouble(r.Field<object>(c), provider(???))).ToArray()).ToArray();
Пример CSV:
место, значение, TV, IS_NEW, is_home, РЕЙТИНГИ, ...
"1", «0,5», «CNN», «TRUE», «FALSE», «888.77» ....
- "TV" следует игнорировать, это не в
independentNames
- "TRUE"/"FALSE" => 1,0/0,0
Какое значение 'double' означает' TRUE'? Как насчет 'ТВ'? Почему бы не создать структуру данных с двойными, строковыми и логическими полями? –
Обновленное описание, спасибо! – SpanishBoy
Кажется, что то, что вы пытаетесь сделать, может быть сделано намного проще, но трудно сказать с таким маленьким кодом. Почему бы не создать пользовательский класс, который может обрабатывать все столбцы из CSV, а затем вы можете использовать их, как вам нравится? –