2009-11-08 4 views
5

コードの行を変更する必要がありました。私は、フィールドを必要としないドロップダウンリストを持っている私は前にそう代わりに重複したコードを書くの私はすべてが今リストコレクションからオブジェクトを削除するにはどうすればよいですか?

myString.remove("two"); 

た「2」私のページのいずれかにしかし、この

// this is in a static method. 
List<string> mySTring = new List<string>(); 

mySTring.add("one"); 
mySTring.add("two"); 

のようなものを持っていました

List<SelectListItem> myList = new List<SelectListItem>() 
      { 
       new SelectListItem() { Text = "one", Value = "one"}, 
       new SelectListItem() { Text = "two", Value = "two"}, 
      }; 
:私は、だから私はそれが今、このように見ている List<SelectListItem> myList = new List<SelectListItem>();

に私のリストを変更する必要があります

これで "two"を含むselectListItemを削除するにはどうすればよいですか?私はおそらくインデックスで削除を使用できることを知っています。しかし、私は今後リストに追加するかもしれないので、私は狩りを開始し、インデックスが変更された場合には変更したくありません。 (SelectListItemは、カスタム平等法を実装していない限り)

おかげ

答えて

8

List<T>は、デフォルトでは、オブジェクト参照を比較しようとしています。だから、あなたはまだあなたが希望する項目を見つける参照することにより、またはのいずれかによってそれを取得する必要があるとしている、周りの2番目の項目への参照を持っていない限り:

var item = myList.First(x=>x.Value == "two"); 
myList.Remove(item); 

指数は容易であろう...

+0

としてid名を使用している、ここでjqueryのオートコンプリート機能に

をこの次のコード

を追加することにより、オートコンプリートのdivの上にマウスの選択を行うことができます今それを検索する必要があります。私はもはや参照を持っていないだろう、私はインデックスまたは削除によって削除すると思います。何を使うべきかわからない将来的には私のリストコレクションに何かを追加しています。突然それが別のインデックスであり、なぜそれがウォークリングではないのかを理解しようとしており、それが理由です。 – chobo2

+1

また、Listコレクションのソート方法はこれに対してどのように機能しますか?なぜなら私は文字列のリストにsortメソッドを使っていたからです(インデックスが変わるのはなぜですか?)。 – chobo2

+0

さて、あなたはいつでもブルートフォースで検索する必要のない別のコンテナを使うことができます。 – spender

6

あなたがRemovalAll方法使用できます

myList.RemoveAll(i => i.Text == "two"); 

は明らかにこれは、その「テキスト」プロパティが「2」であるすべて項目を取り除くだろうが、あなたが共同でそれを使用しているので、をmboBox私はあなたがそれぞれの "テキスト"値に対して1つの項目しか持たないと仮定しています。

0

に期待していたうーん、私たちは、私はRequiredid

$("#Requiredid").autocomplete({focus:function(e,ui) { 
     document.getElementById('Requiredid').value = ui.item.label; 
     document.getElementById('hdnValue').value = ui.item.id;//If You need this value you //can add this line 
}}); 
関連する問題