簡體   English   中英

int也可以在C#中存儲var類型

[英]int to store var type as well in c#

我有一個模型:

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;

我也許應該嘗試進行字符串搜索,但是其中的代碼不正確。 我在尋找處理字符串但不清楚的方法。

謝謝

對於您要嘗試做的事情,尚不清楚的是,要回答您的問題, 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"]包含stringint 一種解決方法是:

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

如果dr["Week6"]可以轉換為int ,則if語句為true並且number將包含dr["Week6"]

這是int.TryParse的元數據:

摘要:將數字的字符串表示形式轉換為其等效的32位帶符號整數。 返回值指示轉換是否成功。

參數:s:包含要轉換的數字的字符串。

結果:此方法返回時,如果轉換成功,則包含與s中包含的數字等效的32位有符號整數值;如果轉換失敗,則為零。 如果s參數為null,格式不正確或表示小於System.Int32.MinValue或大於System.Int32.MaxValue的數字,則轉換將失敗。 該參數未初始化地傳遞。

返回:如果s成功轉換,則返回true;否則返回false。 否則為假。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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