2017-04-03 13 views
0

質問があります。私は "F-213"、 "F-1113/A"などのデータテーブルの列にいくつかの値を持っています。これらの数を抽出し、テーブルの行を数値でソートすることは可能ですか?私はこのようなものを試しました:数値を抽出してDataTableの行を並べ替える

DataTable orderedDt = _table.AsEnumerable() 
      .OrderBy(r => int.Parse(r.Field<string>(int.Parse(Regex.Match("F-Number", @"\d+").Value)))) 
      .CopyToDataTable(); 

しかし、私はフォーマット例外を得ています。

ありがとうございました!

+0

あなたがどのような例外を表示しているかを教えてください。実際には、データ行や実際の列の値などのデータ可能性やデータが必要です。 –

+0

フォーマットの例外が発生しました。データテーブルやデータが本当に必要な場合はどういう意味ですか? – Canox

+0

私はちょうど私があなたにデータテーブルオブジェクトではなくデータ行を返すと言うことを知りたがっています。だから私はちょうどあなたが戻り値またはデータ行のデータテーブルが必要かどうかを知りたがっていますか? –

答えて

1

私はこれをテストし、その作業罰金てきた

var reg = @"(\w)-(\d+)(.*)"; 
var orderedDataRowList = dataTable.Rows.Cast<DataRow>() 
     .OrderBy(c => 
        int.Parse(Regex.Match(c["F-Number"].ToString(), reg).Groups[2].Value)) 
     .ToList(); 

以下のように、あなたは正規表現を試すことができます。

+0

です。これはうまく動作します!どうもありがとうございました!!!これは私が必要なものです – Canox

関連する問題