2014-02-01 5 views
0

Можно ли объявить и инициализировать ConcurrentDictionary? Может быть что-то вроде словаря:ConcCurrentDictionary Initialize

Dim Stuff = New ConcurrentDictionary(Of Integer, Integer) From {{0, 1}, {2, 3}} 
+0

Нет, класс коллекции должен иметь метод Add(), чтобы позволить инициализатор. В ConcurrentDictionary есть TryAdd(). Желание сделать это довольно странно и, вероятно, ошибается. –

ответ

1

Похоже, что вы хотите что-то вроде этого:

Dim Stuff As New ConcurrentDictionary(Of Integer, Integer) _ 
    ({ 
      New KeyValuePair(Of Integer, Integer)(1, 2), 
      New KeyValuePair(Of Integer, Integer)(3, 4), 
      New KeyValuePair(Of Integer, Integer)(5, 6)}) 

ConcurrentDictionary не может использовать инициализатор как Словарь, поскольку этот метод основан на том, метод Add и ConcurrentDictionary имеет только AddOrUpdate.

0

Просто используйте словарь в качестве промежуточного хранения и this constructor of ConcurrentDictionary:

Dim Stuff = New Dictionary(Of Integer, Integer) From {{0, 1}, {2, 3}} 
Dim concurrentStuff = New ConcurrentDictionary(Of Integer, Integer)(Stuff)