0

私はモデルを持っています:

public class KPIResults
{
   public virtual string Title { get; set; }
   public virtual int Total { get; set; }
   public virtual  int Week6 { get; set; }
   public virtual  int Week5 { get; set; }
   public virtual  int Week4 { get; set; }
   public virtual  int Week3 { get; set; }
   public virtual  int Week2 { get; set; }
   public virtual  int Week1 { get; set; }

   public virtual string stringWeek6 { get; set; }
   public virtual string stringWeek5 { get; set; }
   public virtual string stringWeek4 { get; set; }
   public virtual string stringWeek3 { get; set; }
   public virtual string stringWeek2 { get; set; }
   public virtual string stringWeek1 { get; set; }
}

私のレポートリポジトリには次のものがあります。

 int strfound = 0;
 string str = "Number";
 foreach (DataRow dr in dt.Rows)
 {
    string title = dr["Title"].ToString();
    int total = Convert.ToInt32(dr["Total"]);
    if (dr["Week6"].contains("Number")  //synntacs not right?
        var week6 = dr["strWeek6"]
    end

    or do this:
    strfound = str.IndexOf(dr);  //syntacs not right?
    if (strfound == 0)
    {
         var week6 = dr["strWeek6"]
    } 
    var week6 = Convert.ToInt32(dr["Week6"]);
    var week5 = Convert.ToInt32(dr["Week5"]);
    var week4 = Convert.ToInt32(dr["Week4"]);
    var week3 = Convert.ToInt32(dr["Week3"]);
    var week2 = Convert.ToInt32(dr["Week2"]);
    var week1 = Convert.ToInt32(dr["Week1"]);

    results.Add(new KPIResults() {Title = title, Total = total, Week6 = week6, Week5 = week5, Week4 = week4, Week3 = week3, Week2 = week2, Week1 = week1});

  }
  return results;

文字列検索を試してみる必要があるかもしれませんが、isのコードが正しくありません。文字列を処理する方法を探していますが、明確ではありません。

ありがとう

4

1 に答える 1

0

あなたが何をしようとしているのか、あなたの質問に答えるために、やや不明確です、All I want to know is it possible to cast the var type to be stored as an int or the other way around?いいえ。

私はあなたの最善の策stringはそれがテキストと数字を保持することができるようになることを使うことだと思います。正規表現テストを実行して、テキストが含まれているかどうかを確認し、含まれていない場合は、格納されている数値をに変換して、intこれを実行できます。

または、必要なすべてのセクションを含むより良いモデルを作成します。

.GetType()のタイプを返すために使用することもできますvar

アップデート

わかりました。現在、またはdr["Week6"]が含まれているかどうかを検出しようとしているようです。これを実行する1つの方法は次のとおりです。stringint

int number;
if(int.TryParse(dr["Week6"], out number))
    var week6 = dr["strWeek6"]

dr["Week6"]に変換できる場合intifステートメントにはtruenumber値が含まれますdr["Week6"]

メタデータは次のint.TryParseとおりです。

概要:数値の文字列表現を、同等の32ビット符号付き整数に変換します。戻り値は、変換が成功したかどうかを示します。

パラメータ:s:変換する数値を含む文字列。

結果:このメソッドが戻ると、変換が成功した場合はsに含まれる数値に相当する32ビットの符号付き整数値が含まれ、変換が失敗した場合はゼロが含まれます。sパラメータがnullの場合、正しい形式でない場合、またはSystem.Int32.MinValueより小さいか、System.Int32.MaxValueより大きい数値を表す場合、変換は失敗します。このパラメーターは初期化されずに渡されます。

戻り値:sが正常に変換された場合はtrue。それ以外の場合はfalse。

于 2012-08-23T08:03:26.260 に答える