-2

私は、フィールド、名前、地区、および販売を含むセールスマンのリストを持っています。販売した記事の量で並べ替えましたが、レベルに分けて印刷する方法が必要です。例えば:

ジェームズ-12セールス

ビリー-25セールス

2人のセールスマンがレベル1に達しました:50未満のセールス

等々。これを行うための最も簡単で最良の方法は何ですか?

現在ソートに使用しているループは次のようになります。

    foreach (salesman n in salesmen.OrderBy(s=>s.sales))
    {
        Console.WriteLine(n.name);
        Console.WriteLine(n.sales);
    }
4

2 に答える 2

0

私は、フィールド、名前、地区、および販売を含むセールスマンのリストを持っています。販売した記事の量で並べ替えましたが、レベルに分けて印刷する方法が必要です。例えば:

ジェームズ-12セールス

ビリー-25セールス

2人のセールスマンがレベル1に達しました:50未満のセールス

等々。これを行うための最も簡単で最良の方法は何ですか?

現在ソートに使用しているループは次のようになります。

foreach (salesman n in salesmen.OrderBy(s=>s.sales))
{
    Console.WriteLine(n.name);
    Console.WriteLine(n.sales);
}

コーディングには秘密はなく、ショートカットもありません。まず、「セールスマンがこれほど多くの売上を上げた場合、そのレベル、そのレベルにある」というビジネスロジックを開発し、それをコンピュータロジックに変換します。それはプログラミングの芸術であり、人々のステートメントを数学のステートメントに変える最良の方法を見つけます。数学のステートメントが非常に冗長な場合もあれば、簡潔な場合もあります。一日の終わりを変えることはありません。あなたができるのはコードを書くことだけです。

リスト内のすべての人をバケットにソートする唯一の方法は、リストのすべての部分を調べることです。それは反復、またはループです。あなたはそれをやっています。.OrderBy(s...次に、特定のキーワードまたは値について()をテストします。

求めていることを実行するための最も簡単で最良の方法は、ビジネスルールを定義し、ループを使用して、実行中にロジックにカプセル化することです。ビジネスルールごとに1つのリストが表示される場合がありますが、これは悪いことではありません。

ここでの唯一の問題は、「これは常にこのデータを保存するための最良の方法です」という答えを探しているように聞こえますが、それはここには存在しません。私たちがあなたのユースケース全体を知るまで、私たちができる最善のことは「はい、これは適切です」と言うことです。それぞれの状況は異なる答えを必要とします。これはあまり答えではないことはわかっていますが、聞く必要のある答えになることもあります。あなたは元気です、あなた自身に少し自信を持ってください。

于 2012-10-24T15:14:11.903 に答える
0

コードやオブジェクトの入力方法を指定しないため、アプローチは次のようになります。

Employees.ForEach(e => Console.WriteLine("{0} - {1} Sale/s",e.Name, e.Sales.Count().ToString()));

    int[] levels = new int[1];
    levels[0] = 50;

    for (int i = 0; i < levels.Length; i++)
        {
        var emps = Employees.Where(e => e.Sales.Count() <= levels[i]);

        emps.ForEach(Console.WriteLine("{0} salesmen have reachead level {1}: under {2} sales", emps.Count(), i.ToString(), levels[i]);
        // Remove employees from the list that already achived the level (so they won't be counted again).
        Employess.RemoveAll(e=> e.Sales.Count() <= levels[i]);
        }

これは単なる擬似コードであり、コンパイルされない可能性がありますが、一般的な考え方です。

于 2012-10-24T15:17:47.280 に答える