62,046
社区成员
发帖
与我相关
我的任务
分享
//方法有很多 上边是LINQ的,再帖一个正则实现的
void Main()
{
List<string>list=new List<string>
{
"3天4小时",
"4天2小时",
"5天8小时",
"6天9小时",
"8天11小时",
"9天21小时",
};
int total=0;
foreach(string s in list)
{
Match m =Regex.Match(s,@"(\d+)天(\d+)小时");
if(m.Success)
{
total+= int.Parse(m.Groups[1].Value)*24 +int.Parse(m.Groups[2].Value);
}
}
string result=(int)total/24+"天"+total%24+"小时";
Console.WriteLine(result); //37天7小时
}
void Main()
{
List<string>list=new List<string>
{
"3天4小时",
"4天2小时",
"5天8小时",
"6天9小时",
"8天11小时",
"9天21小时",
};
var totalHours=(from l in list
let m=l.Split(new string[]{"天","小时"},StringSplitOptions.RemoveEmptyEntries)
select int.Parse(m[0])*24 +int.Parse(m[1])).Sum();
string result=(int)totalHours/24+"天"+totalHours%24+"小时";
Console.WriteLine(result); //37天7小时
}