Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
设置ListBox项数据格式c#_C#_Listbox - Fatal编程技术网

设置ListBox项数据格式c#

设置ListBox项数据格式c#,c#,listbox,C#,Listbox,很抱歉,如果因为我的英语不好,标题让你感到困惑。 我有一个列表框,其中包含许多具有时间格式的项目 (例如: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 我试着写一个方法,比如: publ

很抱歉,如果因为我的英语不好,标题让你感到困惑。 我有一个列表框,其中包含许多具有时间格式的项目 (例如: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;
}
for(int i=0;i

或者,
TryParse()
可以用于处理格式不正确的字符串:
if(TimeSpan.TryParse(listBox1.Items[i].ToString(),out time)){listBox1.Items[i]=time.TotalMinutes;}

只需将字符串作为时间跨度进行分析,并使用
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;
}
for(int i=0;i
或者,
TryParse()
可以用于处理格式不正确的字符串:
如果(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();
    }
}
你可以尝试以下方法:

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();
    }
}

非常感谢!非常感谢!