0

作成しようとしている listBox2 という名前のリストボックスがあります。「プロセーラー」はクラスで、末尾の 3 つの数字はそのクラスの値です。

これらの値を listBox2 に追加する必要があります。

public string[] listBoxBoard = new string[10];
    List<string> _scoreboard = new List<string>();
    ProSailor sailor1 = new ProSailor(1, 24, 7);
    ProSailor sailor2 = new ProSailor(2, 23, 14);
    ProSailor sailor3 = new ProSailor(3, 20, 5);

ただし、これを試してみると:

 _scoreboard.Add(sailor1);

次の2つのエラーが表示されます。

  1. 'System.Collections.Generic.List.Add(string)' に最もよく一致するオーバーロードされたメソッドには、無効な引数がいくつかあります

  2. 引数 1: 'SailingEvent.ProSailor' から 'string' に変換できません

私も試しました:

_scoreboard.Add(listBoxBoard[0]);

これはエラーを返しませんが、リストボックスにデータを入力しません。

4

3 に答える 3

1

あなたのProSailerクラスでは、関数をオーバーライドしToString()て、Listbox が何を表示するかを認識できるようにします。クラス オブジェクトを含むオブジェクトとして項目を追加ProSailorするため、 のコレクションをに追加します。Listbox

 public override string ToString()
  {
   return "your string to display";
  }
于 2013-08-17T15:28:42.413 に答える
1

型の不一致が発生する理由は、リストを次のように初期化してから、型オブジェクトをリストList<string>に追加しようとしたためです。ProSailorセーラーに文字列プロパティがある場合は、次のことを試すことができます。

プロセーラーは次のようになります。

    class ProSailor
    {
        public string MyStringProperty { get; set; }

        public ProSailor(int a, int b, int c)
        {
        }
    }

次に、あなたがしていることを達成するために:

            List<ProSailor> sailorList = (new ProSailor[] 
            {
                new ProSailor(1, 24, 7),
                new ProSailor(2, 23, 14),
                new ProSailor(3, 20, 5)
            }).ToList();

            List<string> stringList = sailorList.Select(s => s.MyStringProperty).ToList();
于 2013-08-17T15:33:30.093 に答える