我有两个数组和一个文本文件,我希望它将一个特定的单词放入一个数组,然后将其他一些放入另一个数组中(VB)

时间:2013-10-25 07:40:00

标签: arrays vb.net streamreader

所以我在visual basic中遇到问题,我有两个名为arrLang1和arrLang2的数组

我想把 - 放在第一个数组之前的单词和第二个数组之后的单词。这些词来自txt文件。

  

SwedishWord1 - EnglishWord1

     

SwedishWord2 - EnglishWord2

     

SwedishWord3 - EnglishWord3

     

SwedishWord4 - EnglishWord4

1 个答案:

答案 0 :(得分:0)

为什么不使用Dictionary(Of String. String)?它们是专为满足这样的要求而创建的。

Dictionary<TKey, TValue>泛型类提供了从一组到一组的映射。字典的每个添加都包含一个值及其关联的键。使用其键检索值非常快,接近O(1)。每个密钥必须唯一

Dim allLines = From line In File.ReadLines(path) Where Not String.IsNullOrWhiteSpace(line)
Dim dict = New Dictionary(Of String, String)
For Each line As String In allLines
    Dim words = line.Split({" - "}, StringSplitOptions.RemoveEmptyEntries)
    If words.Length >= 2 Then
        dict(words(0)) = words(1)
    End If
Next

如果你坚持收集我会使用List(Of String)而不是数组,因为你不知道正确的大小和数组是固定的大小:

Dim swedishWords = New List(Of String)
Dim englishWords = New List(Of String)
For Each line As String In allLines
    Dim words = line.Split({" - "}, StringSplitOptions.RemoveEmptyEntries)
    If words.Length >= 2 Then
        swedishWords.Add(words(0))
        englishWords.Add(words(1))
    End If
Next

如果之后确实需要数组swedishWords.ToArray()englishWords.ToArray()