1

オブジェクト内に格納されている個々のオブジェクト インスタンスのプロパティを使用しようとしていますList<T>が、プロパティに直接アクセスできないようです。

sportsCarVehicleユーザー定義の名前 ( ) を格納するオブジェクト ( ) があります (strVehicleName他のプロパティの中でも重要ですが、それは重要ではありません)。List<sportsCarVehicle>オブジェクトは、 というオブジェクト内に格納されますsportsCarVehicleStorage。in
のすべてのインスタンスにアクセスし、フォームのコンボ ボックスに値を渡す必要があります。sportsCarVehicleList<sportsCarVehicle>strVehicleName

各インスタンスを循環し、名前をコンボ ボックスに渡すには何らかのループが必要だと思いますが、主な問題は、必要なプロパティにアクセスできないことです。sportsCarVehicleインスタンスには参照可能な名前がありません。
もう 1 つ注意する必要があります。コンストラクターはメソッドsportsCarVehicle内で呼び出されます。sportsCarVehicleStorage.Add()

これを行う方法について何か提案はありますか?

4

4 に答える 4

2

あなたはこれを行うことができます

List<string> lst = new List<string>{"Hello", "World"};

 int len = lst[0].Length;

これ.Lengthは文字列のプロパティです。そのプロパティがパブリックである限り、アクセスできます。

あなたの場合

List<sportsCarVehicle> sportsCarVehicleStorage = new List<sportsCarVehicle>();

// Some code to populate list.

mycombobox.Items = sportsCarVehicleStorage
                   .Select(x => x.strVehicleName).ToArray();

プロパティstrVehicleNameがそのクラスで公開されていることを確認してください。

于 2012-05-29T09:57:09.727 に答える
1

foreach次のように、リストをループして、リストの各メンバーを名前付き変数に割り当てることができます。

foreach (sportsCarVehicle scv in sportsCarVehicleStorage)
{
  //scv is the name of the currently looping sportsCarVehicle object
  //use scv.strVehicleName to access the property.
  myComboBox.Items.Add(scv.strVehicleName);
}
于 2012-05-29T10:00:18.183 に答える
0

別の方法として、sportsCarVehicle のリストを直接コンボ ボックスにバインドすることもできます。次に例を示します。

List<sportCarVehicle> sportsCarVehicleStorage= new List<sportsCarVehicle>;

// Set up list content here
// ...

myComboBox.DataSource = sportsCarVehicleStorage;
myComboBox.DisplayMember = "strVehicleName";
于 2012-05-29T10:09:16.260 に答える
0
foreach (SportsCarVehicle car in myListName)
{
    //do stuff here
}

これは最も基本的な例です。PLINQ などを使用して、より合理的な方法で実行できます。

于 2012-05-29T09:58:29.180 に答える