フルーツの分配プログラムを作っています。

リストの扱い方、リスト内の要素によるリストのソートの仕方が不明です。それができたら、リスト内の各アイテムにループによって、任意の数を一つずつ振り当てていくということがしたいです。

  • リストは、人名と年齢についての情報が入っています(氏 + 名 + 年齢)で、ユーザー入力によりリスト追加されます。(氏名と年齢にわけて多次元配列にしたほうがスマートなのでしょうか?)
  • リストを年齢でソートしたいです
  • 任意の入力数を、リスト内の情報に順番に加えていきたいです。(割り算による同じ数の分配ではなく、ループでフルーツがなくなるまで一つずつ順番に分配するイメージ)

コード

List<string> names = new List<string>();    
private void BtnDivide_Click(object sender, RoutedEventArgs e)
{
    int nrOfFruits = int.Parse(TxtTotalFruits.Text);
    int c = names.Count;
    int division;
    string firstName = TxtFirstName.Text;
    string lastName = TxtLastName.Text;      
    string txtAge = TxtAge.Text;           

    // 割り算で平等に分配すると場合により余剰がでるので、最終的には商を出すのではなく、ループで最後の一つまで分配したいです。

    division = nrOfFruits / c;

    for (int i = 0; i < c; i++)
    {
        // リスト内の年齢の要素を使って昇順にソートしたいです。

        //Lambda operator: => 

        //OrderByを使う?
        var orderedNames = names.OrderBy(txtAge => names);

        //wpf上のリストボックスNameListとorderedNamesを繋ぐ
        NameList.Items[i] = orderedNames;

        //希望の順番でリストをソートできたところで、wpf上のリストボックスに数を表示させる。

        NameList.Items[i] += " " + division.ToString() + " 個のフルーツ";
    }
}