2014-02-06 3 views
0

У меня есть текстовый файл, и он выглядит как этотКакой метод сбора следует использовать?

defabot:3215 
defatank:2985 
ludditus:29 
compensate:355 
moobot:805 
maxi292003:63 
doctorbarzhal:19 
plaanz:4 
manguuu:51 
atntpc:19 
immortalsofthemist:18 

я загружаю этот список, когда откроется мое приложение, разделив имя от числа и заселять элемент списка с ним. Я хочу сохранить список в памяти для всего моего проекта, чтобы использовать и манипулировать.

Мне нужны номера, связанные с именем, поэтому, когда я ищу имя, я знаю, сколько у них очков. Каков наиболее эффективный/простой способ достичь этого?

спасибо.

+0

словарь Dictionary (Of String, Integer) , – Neolisk

+0

Является ли второй элемент * всегда * целочисленным? –

ответ

3

Dictionary(Of String, Integer). Вот пример:

Dim dict As New Dictionary(Of String, Integer) 
For Each s As String In IO.File.ReadAllLines("filename") 
    Dim a() As String = s.Split(":"c) 
    Dim userName As String = a(0) 
    Dim userPoints As Integer = Convert.ToInt32(a(1)) 
    dict.Add(userName, userPoints) 
Next 
2

Наиболее эффективным способом является использование Dictionary(Of String, Int32):

Dim dict As Dictionary(Of String, Int32) = IO.File.ReadLines(path). 
    Select(Function(line) line.Split(":"c)). 
    ToDictionary(Function(split) split(0), Function(split) Int32.Parse(split(1))) 

Вы получаете значение, это ключ:

Dim ludditus As Int32 = dict("ludditus") 
Смежные вопросы