簡體   English   中英

使用C#中的特定提供程序將值轉換為兩倍

[英]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”...。

  • “ TV”應該被忽略,它不是independentNames
  • “ TRUE” /“ FALSE” => 1.0 / 0.0

如果您需要做的就是將"TRUE""FALSE"包裝為1.00.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM