2

在下面的代码中,我将获得时间跨度值的列表。我需要添加所有时间跨度值,并且该值必须存储在字符串中。如何实现这一点我尝试了很多,但我找不到答案。提前致谢。

  List<TimeSpan> objList = new List<TimeSpan>();
        string  totalIntervalTime = string.Empty;
     private void Resume_Click(object sender, EventArgs e)
            {
                if (!string.IsNullOrEmpty(textBox2.Text))
                {
                    textBox3.Text = DateTime.Now.ToLongTimeString();
                    //objPausetmr.Tick += new EventHandler(objPausetmr_Tick);
                    //objPausetmr.Stop();
                    tmrObj.Start();
                    DateTime pausetime = Convert.ToDateTime(textBox2.Text);
                    DateTime startTime = Convert.ToDateTime(textBox3.Text);
                    TimeSpan difference = pausetime - startTime;
                    string intervalDifference = difference.ToString();
                    richTextBox1.Text = intervalDifference;

                    TimeSpan tltTime = TimeSpan.Zero;
                    objList.Add(difference);
                    foreach (TimeSpan tmVal in objList)
                    {
                        tltTime.Add(tmVal);
                    }
                    totalIntervalTime = tltTime.ToString();

                    //MessageBox.Show(interval_Time.ToString());
                }
                else
                {
                    MessageBox.Show("Please set the Pause time");
                }
            }
4

2 回答 2

2

假设您要将所有时间跨度的值添加到单个时间跨度中。

DateTime并且TimeSpan是不可变的结构。所有使用它们的操作都会返回新的实例。因此,您需要将操作结果存储在 TimeSpan 值中(通常只需更新现有值即可)

  var totalTime = TimeSpan.Zero;
  foreach (TimeSpan currentValue in objList)
  {
       totalTime = totalTime + currentValue;
  }

TimeSpan.Addition Operator MSDN 文章+中详细介绍了用法。

或者,您可以使用Enumerable.Aggregate

var totalTime = objList.Aggregate(
      (accumulatedValue,current) => accumulatedValue + current);
于 2013-06-28T06:59:08.097 回答
0

你可以尝试类似的东西

string s = String.Join(",",objList.Select(x => x.ToString()));

看一下

String.Join 方法

可枚举.Select

使用objList.Select(x => x.ToString())你可以确定你想要的格式输出

Span.ToString 方法(字符串)

于 2013-06-28T07:00:24.887 回答