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

すべてのタイム スパンの値を 1 つのタイム スパンに追加するとします。

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 メソッド

Enumerable.Select

を使用しobjList.Select(x => x.ToString())て、必要な形式の出力を決定できます

Span.ToString メソッド (文字列)

于 2013-06-28T07:00:24.887 に答える