2015-07-02 4 views
1

Здравствуйте, я пытаюсь сравнить два словаря vb.net, чтобы перечислить разницу между двумя словарями. Я импортировал System.Linq и System.Collections.Generic. Мои словари заселяется правильно, но тогда, когда я иду, чтобы сравнить два словаря я получаю следующую ошибкуСравните два словаря в vb.net с system.linq

System.Linq.Enumerable + d__99`1 [System.String]

Оба словари содержат только один и тот же ключ. Я использую следующий оператор для сравнения (и получения исключений), не уверен, что я испортил (если я делаю это правильно!) или где я ошибся. Но если кто-то может указать мне на правильное направление, которое было бы очень признательно.

Dim folder As New Dictionary(Of String, Integer) 
Dim fdatabase As New Dictionary(Of String, Integer) 
Dim different_files 
different_files = folder.Keys.Except(fdatabase.Keys) 
+0

Какая строка исключает исключение? Каков полный текст исключения? –

ответ

2

System.Linq.Enumerable+d__99'1[System.String] не является исключением. Это имя типа.

Возможно, вы назвали .ToString() по результату folder.Keys.Except(fdatabase.Keys), возможно, неявным образом.


Код, который вы опубликовали, должен работать нормально.

Этот

Dim folder = New Dictionary(Of String, Integer) From {{"Foo", 1}, {"Bar", 2}} 
Dim fdatabase = New Dictionary(Of String, Integer) From {{"Foo", 1}, {"Buzz", 4}} 

Dim different_files = folder.Keys.Except(fdatabase.Keys) 
For Each key In different_files 
    Console.WriteLine(key) 
Next 

напечатает

Бар

Вы, наверное, didnt't правильно обрабатывать результат. Включите OPTION STRICT ON; это поможет вам поймать ошибки на ранней стадии.

+0

Цените, что помогите лени, я прищурился и позже ссылался на неправильную вещь в моем коде, но не понимал, что наверху я все еще писал ответ. – pullmyhair

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