2

これが私の問題に対する質問です:

「メモ帳を使用して、次の値をテキスト ファイルに入力します: 86、97、144、26。問題を単純化するために、値をそれぞれ別の行に配置できます。テキスト ファイルから値を取得して出力する C# プログラムを作成します。小数点以下 2 桁でフォーマットされた値の平均。

私はすでに、「lstBoxNumbers」というタイトルのリスト ボックスに 4 つの数字のリストを表示するテキスト ファイルを持っています。

簡単な方法は、リストボックスにフィルター処理された数値を取得し、foreach ループを使用して平均を計算することだと思います。テキストボックスに平均を表示するために、ボタンクリックを使用することにしました。これは私がこれまでに持っているものです。

private void btnAverage_Click(object sender, EventArgs e)
{
    //Shows Average Of Numbers From Text File

    decimal average;

    txtAverage.Text = Convert.ToString(0);

    foreach (string itemInList in lstBoxNumbers.Items)
    {

    }
}
4

2 に答える 2

2

これを試してください: (これは宿題なので、自分で型を double にキャストする必要があります)

List<double> newNumberList = new List<double>(); // create a new list 

foreach (string itemInList in lstBoxNumbers.Items) // loop round all of your items
{
   newNumberList.Add(itemInList);  // You will have to convert this to a double, since this is homework you can research on how to convert types (Casting)
}   

 double avg = newNumberList.Average(); // Will give you the average you are looking for

提供されているサンプルでは LINQ を使用していることに注意してください。あなたの宿題は、平均を計算するために使用されるアルゴリズムで採点されると思います. LINQ を使用せずにこれを達成するには、foreach ループで実行中の合計を追跡する必要があるため、追加するすべての項目について、これをその合計に追加し、リスト内の項目数で割る必要があります。

たとえば、リストに次の項目があるとします。

  • 10
  • 20
  • 300
  • 400

平均を 182.5 (10 + 20 + 300 + 400) / リスト内の 4 アイテムにする必要があります。

于 2012-04-30T22:05:45.023 に答える
2

簡単ですが、宿題に答えるのがちょっと気の毒です。数値を配列またはリストに変換してから、Linq の Average メソッドを利用します。

http://msdn.microsoft.com/en-us/library/system.linq.enumerable.average.aspx

于 2012-04-30T22:06:56.290 に答える