2016-05-15 48 views
0

我有一個ListBox綁定到一個名爲「widgets」的observableCollection。集合中的每個小部件目前只有一個名稱字段,但會改變。檢查一個文本框的值是否已經存在於一個列表框中

在窗口上我有一個文本框,用戶可以在其中輸入另一個名稱以添加到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

它可以通過使用下面的代碼更有效地編碼,只需要一行。

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

如果通過高效率,你的意思是它運行得更快,那麼我懷疑我的代碼和你的代碼之間會有很大的差異。

+0

太好了。正是我需要的。謝謝。 – user3844416

相關問題