2011-02-08 5 views
0

私は2つのリストボックスコントロールListbox1とListbox2を持っています。 Listbox1から選択されているListbox2の項目数をCで取得したいのですか?リストボックス1に合計7つのアイテムがあり、リストボックス2のコントロールで3つのアイテムしか選択しなかったとします。 Listbox2の項目数をC#で取得したいのですか?asp.netのリストボックスコントロール

答えて

0

ListBox1で選択したすべての項目をループし、ループ内でListBox2で同じ値の項目を検索し、選択されている場合はカウンタをインクリメントします。

1

ループ選択項目スルーの選択は次のように

何かを変更した場合:

 int count = 0;  
     foreach(string itemListbox2 in listBox2.Items) 
     { 
      if (itemListbox2.Selected) 
      {  
       foreach(string itemListbox1 in listbox1.Items) 
       { 
        if (itemListbox1.Selected) 
        { 
         if(itemListbox1.Equals(itemListbox2)) 
         { 
         count++; 
         break; 
         } 
        } 
       } 
      } 
     } 
+0

asp.netフォームにSelectedItemsというプロパティはありません。そのwinformsのために。あなたを落とすために半分の心がある。ですので、できるだけ早く修正してください。 – naveen

+1

@yetanothercoderそれを変更しました、tnx – BvdVen

0

Aリストボックスasp.netでselectedItemsのを持っていません。そのため、Itemsをループし、選択されているかどうかを確認します。その場合は、同じ値を持つ他のリスト内の項目を見つけます。対応するアイテムが見つかった場合は、それを数えます。このように:

int count = 0; 
foreach (ListItem item in secondListBox.Items) 
{ 
    if (item.Selected) 
    { 
     ListItem itemWithSameValue = firstListBox.Items.FindByValue(item.Value); 
     if (itemWithSameValue != null) 
     { 
      count++; 
     } 
    } 
} 
2

ワンダーなぜ誰もLinqを使用しませんでした。


@Riya:あなたはListBox2項目に存在しているListBox1を中selectedItemsののカウントをしたい、と私はあなたの条件を理解しています。もしそうなら、これを行う。

var filteredListCount = ListBox2.Items 
    .Cast<ListItem>() 
    .Where(li => 
     ListBox1.Items 
      .Cast<ListItem>() 
      .Where(item => item.Selected) 
      .Select(item => item.Text).Contains(li.Text)) 
    .Count(); 
関連する問題