2016-05-15 5 views
0

私はListBoxがobservableCollectionの "widgets"にバインドされています。コレクションの各ウィジェットは現在のところ名前フィールドしかありませんが、変更されます。リストボックスにテキストボックス値が既に存在するかどうかを確認します

私は、ユーザーがobservableCollectionに追加する別の名前を入力できるテキストボックスを持っています。

各エントリは一意でなければなりません。私はこの

Dim query As IEnumerable(Of clsWidget) 
    query = WidgetSource.Where(Function(widget) widget.name = txtNewName.Text) 

    If query.Count > 0 Then 
    Debug.Print("Tried to add a widget that already in the collection") 
    End If 

を使用瞬間

は、これを行うためのより効率的な方法はありますか?

+0

はい。しかし、パフォーマンスの違いを感じることはありません。見て[これ](http://stackoverflow.com/questions/305092/which-method-performs-better-any-vs-count-0) –

+0

ありがとう、そのC#で、しかし、そこに何が起こっているかわからない。 – user3844416

+0

http://converter.telerik.com/ –

答えて

0

以下のコードを使用すると、1行しか必要なくなり、より効率的にコードを記述することができます。

If WidgetSource.Any(Function(widget) widget.name = txtNewName.Text) Then Debug.Print("Tried to add a widget that already in the collection") 

効率的で、あなたが、私は私のコードとあなたとの間に大きな違いがあるとは思えない、それはより速く走る意味場合

+0

これは素晴らしいことです。ちょうど私が必要なもの。ありがとう。 – user3844416

関連する問題