簡體   English   中英

設置ListBox項目數據格式C#

[英]Set ListBox item data format c#

抱歉,由於我的英語不好,標題使您感到困惑。 我有一個列表框,其中包含許多具有時間格式的項目(例如:00:02:22:33)我想將此時間格式轉換為分鍾

For example: 00:02:22:33 -> 02 hours = 120 minutes
                             33 seconds = 33/60 = 0.55 minutes
So result is 120+22+0.55 = 142.55

我正在嘗試編寫類似的方法:

public static void Timeconvert(ListBox l) 
   {   
     foreach (var item in l.Items)
     {
        int x, int y, int z;             //It just to show you my thought
        if(item.format = 00:x:y:z)       
          {                                  
           int result =  x*60 +y + z/60 ;
           item = result.Tostring();
          }
     } 
  } 

我是C#的新手,所以我盡可能詳細地解釋了,所以請幫助我:(

只需將字符串解析為時間跨度並使用TotalMinutes屬性。

var time = TimeSpan.Parse("00:02:22:33");
var convertedToMinutes = time.TotalMinutes;  //Returns 142.55

這將更新您的列表項

for (int i = 0; i < listBox1.Items.Count; i++)
{
    TimeSpan time = TimeSpan.Parse(listBox1.Items[i].ToString());
    listBox1.Items[i] = time.TotalMinutes;
}

另外, TryParse()可用於處理格式錯誤的字符串: if (TimeSpan.TryParse(listBox1.Items[i].ToString(), out time)) { listBox1.Items[i] = time.TotalMinutes; } if (TimeSpan.TryParse(listBox1.Items[i].ToString(), out time)) { listBox1.Items[i] = time.TotalMinutes; }

您可以嘗試以下操作:

var regex = new System.Text.RegularExpressions.Regex(@"00:\d{2}:\d{2}:\d{2}");
foreach (var item in l.Items)
{
    if (regex.IsMatch(item))
    {
        item =  TimeSpan.Parse(item).TotalMinutes.ToString();
    }
}

暫無
暫無

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

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