2017-01-12 5 views
-3

のインスタンス私はクラスのドローンの配列のどの指標を知りたい私はあなたのコンボがあなたのドローンのオブジェクトに満ちていたと思うコンボボックスのC# - クラス

drones.ip_drone == cb_drone.SelectedText 

public partial class Arena : Form 
{ 
    private readonly Drone[] drone; 

    public Arena(params Drone[] drone) 
    { 
     InitializeComponent(); 
     this.drone = drone; 

    } 

    private void cb_drone_SelectedIndexChanged(object sender, EventArgs e) 
    { 
     foreach (var drones in drone) 
     { 
      if(drones.ip_drone == cb_drone.SelectedText) 
      { 
       //which index of Drone[] drone?? 

      } 
     } 

    } 
+4

代わりに 'for'ループを使用して、なぜそれがどのインデックスであったのか正確に分かりません。 – Equalsk

+0

あなたはsmarttttです –

+0

また、間違ったプロパティを使用しています。 SelectedTextを "HighlightedText"と考えてください。代わりに 'SelectedItem.ToString()'を使用してください。 – LarsTech

答えて

0

と同じIPを持っています。そうなら、あなたは選択したものに直接アクセスできます。

private void cb_drone_SelectedIndexChanged(object sender, EventArgs e) 
{ 
     var selectedDrone = cb_drone.SelectedItem as Drone; 
     if (selectedDrone != null) 
     { 
    // you can also use Array.IndexOf if need be 
     } 
} 
+0

私のコンボボックスには無人機のIPしかありません –

+0

それでもまだこのようなコードを使用することができます: var index = drones.Select((d、i)=> new {IP = d.ip_drone、Index = i})シングル(d => d.IP == cb_drone.SelectedText)。インデックス。 –

0

は、なぜあなたは代わりにforためforeachを変更しませんか?

foreach (var index = 0; index < drone.Length; index++) 
{ 
    if(drone[index].ip_drone == cb_drone.SelectedText) 
    { 
     //index will have the value you are looking for 
    } 
} 

しかし、これは設計が貧弱です。 @Cetin Basozが推薦しているものに従ってください。 SelectedItemプロパティを調べて、オブジェクトを単にIPの代わりにコンボボックスに関連付ける。