2013-06-28 38 views
0

在下面的代碼中,我將獲取時間範圍值列表。我需要添加所有的時間跨度值,該值必須存儲在字符串中。如何實現這一點,我嘗試了很多,但我無法找到答案。 在此先感謝。如何在列表中添加時間範圍值

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"); 
       } 
      } 
+1

你正面臨這樣做的什麼困難? –

+0

不太清楚你想實現什麼,你的代碼不工作是什麼?請高亮部分給你例外,不按預期工作等。 – Sander

+0

@Sander tmVal不會添加到tltTime。字符串totalIntervalTime值爲零 – Vignesh

回答

0

假設您想要將所有時間跨度的值添加到單個時間跨度中。

DateTimeTimeSpan是不可改變的結構。所有使用它們的操作都返回新的實例所以,你需要存儲操作的結果,在時間跨度值(通常只更新exisintg一個是罰款)的+

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); 
相關問題