2015-08-21 4 views
0

Я пытаюсь удалить дубликаты в ListBox, который заполнен запросом pull. Я использую этот код, чтобы предотвратить добавление дубликатов в VB 6.0, но не работает при преобразовании на VB.net. Есть ли способ замены для предотвращения или удаления дубликатов.Как удалить дубликаты в списке VB.net

colSchema = dr("Col_Schema").ToString 
If Not lstSchema.Items.ToString.Contains(colSchema) Then 
    lstSchema.Items.Add(New ListItem(colSchema)) 
End If 
+0

_If не lstSchema.Items.Contains (colSchema) Then_ Это ToString создает снятие ToString ошибки – Steve

+0

не решает проблему. Я получаю это ниже ошибки. Я изначально использовал его, потому что он не работал без ToString и работал с ним в VB6. BC30311: Значение типа 'String' не может быть преобразовано в 'System.Web.UI.WebControls.ListItem'. –

+0

Это приложение WinForms/WPF или ASP.NET? – Steve

ответ

0

попробовать

colSchema = dr("Col_Schema").ToString 
dim exists as boolean = false 
for i as integer = 0 to lstSchema.items.count - 1 
if lstSchema.items.item(i) = colSchema then 
exists = true 
end if 
next 
if exists = false then 
lstSchema.Items.Add(New ListItem(colSchema)) 
end if 
+0

Этот код работал для меня с редактированием. Мне нужно было добавить функцию Tostring, чтобы она работала. lstSchema.items.item (i) .ToString –

0

Этот код

lstSchema.Items.ToString 

является преобразование элементов в строке. Элементами, скорее всего, является тип ListBox.ObjectCollection (если это WinForms) или аналогичный тип коллекции для других интерфейсов пользовательского интерфейса. Вызов ToString на таких классах приведет к вызову Object.ToString, который просто возвращает имя класса.

Вместо этого попробуйте

lstSchema.Items.Contains(colSchema) 

Если это не работает по какой-то причине, пожалуйста, обновите ваш вопрос объяснить, что именно вы пытались решить с помощью вызова ToString.

Смежные вопросы