Select構文について

前提条件
以下の構文が、「坪単価」というカラムの、"万円"の手前の数値を抽出して平均値を計算する構文です。

ExtractDataTable.AsEnumerable.Select(Function(r) Double.Parse(System.Text.RegularExpressions.Regex.Match(r("坪単価").ToString,"^.*?(?=万円)").Value)).Average()

問題点
万円という文字が含まれない、関係ない文字列が入ってきてしまうケースがあることが判明し、入力文字列が正しくありませんと言うエラーになります。

やりたいこと
以下のいずれかの方法を実現できないでしょうか?

  1. 「万円」が含まれないデータは計算から除外する
  2. 「万円」が含まれないデータは自分で坪単価を計算する( 例:CDbl(row(“価格”).ToString / row(“坪数”).ToString )

以上、いずれかの方法で実現できる方法がありましたらご教示いただけますと幸いです。

@111860
Try this one:

ExtractDataTable.AsEnumerable.
    Select(Function(r)
               If(r("坪単価").ToString.Contains("万円"),
                  Double.Parse(System.Text.RegularExpressions.Regex.Match(r("坪単価").ToString,"^.*?(?=万円)").Value),
                  CDbl(r("価格").ToString) / CDbl(r("坪数").ToString))).Average()

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.