0

C# では、値が 0 を超える 10 進変数と 0 に等しい 10 進変数がいくつかあります。これらの 10 進値は、C# winform のさまざまなテキスト ボックスの数から取得します。

それらのうち、値が 0 より大きい数を数えるためのベスト プラクティスは何ですか?

カウントが 12 を超える場合、最小値を持つ変数 (ゼロ以外の値のみ) を 0 に変更する必要があります。

4

2 に答える 2

6

小数の長いリストを使用しないでください。それらの配列を使用してください。

decimal[] values = new decimal[17];
/*Populate the values array with data*/
int CountOfMoreThanZero = values.Count(v => v > 0);
于 2012-09-19T11:55:07.943 に答える
0

これはオブジェクト指向ソフトウェア エンジニアリングの賞を受賞した作品ではありませんが、次のように機能するはずです。

static void Main(string[] args)
{
    var seq = Enumerable.Range(0, 12).Select(i => (decimal)i);
    Console.WriteLine(GetGreaterThanZero(seq));

    var arr = seq.ToArray();
    SetMinNull(arr);
    foreach(var n in arr)
        Console.WriteLine(n);
}

static int GetGreaterThanZero(IEnumerable<decimal> numbers)
{
    return numbers.Count(n => n > 0);
}

static void SetMinNull(decimal[] numbers)
{
    decimal min = numbers.Min();

    // edit: credits to daniel for this loop
    for(int i = 0; i < numbers.Length; i++)
    {
        if(numbers[i] == min) numbers[i] = 0;
    }
}

コレクションを使用します。ただし、それらも使用することをお勧めします。番号の付いたさまざまな値をたくさん使うのはコードのにおいがするし、あまり便利ではないと思います。

于 2012-09-19T12:06:12.410 に答える