[英]Convert value to double with specific provider in C#
我需要解析CSV文件,獲取特定的列,並將值轉換為兩倍。 如果所有值都可以轉換為double :),則下面的代碼可以正常工作。 但是,如果值等於“ TRUE” /“ FALSE”,我應該如何更新代碼?
碼:
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范例:
排名,價值,電視,IS_NEW,IS_HOME,RATINGS,...
“ 1”,“ 0.5”,“ CNN”,“ TRUE”,“ FALSE”,“ 888.77”...。
independentNames
如果您需要做的就是將"TRUE"
和"FALSE"
包裝為1.0
和0.0
,則將邏輯與您自己的方法分開,然后調用它,而不是Convert.ToDouble
。
您仍然需要使用此方法或更高范圍來處理無效輸入。
double AsDouble(string input)
{
switch (input)
{
case "TRUE": return 1.0;
case "FALSE": return 0.0;
//any other special cases
default: return Convert.ToDouble(input); //may still throw!
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.