0

私は比較的単純なことに取り組んでおり(またはそう思っていた)、少し助けが必要です。

コンマ区切りの文字列を動的に作成しようとしています。

必要な異なる文字列の数である変数 (numberOfStrings) があります。aryDrivers をループして、別の文字列に割り当てたいだけです。

Dim aryHeats(numberOfStrings - 1) As ArrayList

Dim aryDrivers() As String
aryDrivers = txtBatch.Text.Split(",")

For i As Integer = 0 To aryDrivers.Length - 1
    For j As Integer = 0 To aryHeats.Length - 1
        aryHeats(j).Add(aryDrivers(i) & ",")
    Next
Next

文字列を「追加」しようとすると、何らかの理由でループでエラーが発生します。

考え?

ありがとう!

* *更新 **

多分これは私がやろうとしていることをもっと説明するのに役立つでしょう。私は文字列を持っています:

s = A、B、C、D、E、F、G、H、I、J、K、L、M、N、O、P、Q、R、S、T、U、V、W、X、 Y、Z

変数 (numberOfHeats) を渡しているので、4 を使用できます。

次に、4つの文字列が必要です(したがって、配列を使用したいです)

ary(0) = A,E,I,M,Q,U,Y
ary(1) = B,F,J,N,R,V,Z
ary(2) = C,G,K,O,S,W
ary(3) = D,H,L,P,T,X

うまくいけば、これで解決します。

4

2 に答える 2

2

VB.NET メソッドの構文は嫌いですが、LINQを使用できます。

Dim text = "A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z"
Dim numberOfHeats = 4
Dim aryHeats As String()() = s.Split(","c).
        Select(Function(w, index) New With {.Word = w, .Index = index}).
        GroupBy(Function(x) x.Index Mod numberOfHeats).
        Select(Function(grp) grp.Select(Function(x) x.Word).ToArray()).
        ToArray()

説明: 最初の文字列を取得し、それを単語で分割します (コンマをセパレータとして)。Word次に、単語と String-Array 内の対応するインデックスを、およびプロパティとして匿名型に変換しIndexます。このリストはIndex Mod numberOfHeats(必要な配列の数) によってグループ化されます。これは、目的の結果によって暗黙的に順序付けされます。最後のステップは、グループをギザギザ配列に変換することです。

結果:

(0) 
    (0) "A" 
    (1) "E" 
    (2) "I" 
    (3) "M" 
    (4) "Q" 
    (5) "U" 
    (6) "Y" 
(1) 
    (0) "B" 
    (1) "F" 
    (2) "J" 
    (3) "N" 
    (4) "R" 
    (5) "V" 
    (6) "Z" 
(2)     
    (0) "C" 
    (1) "G" 
    (2) "K" 
    (3) "O" 
    (4) "S" 
    (5) "W" 
(3) 
    (0) "D" 
    (1) "H" 
    (2) "L" 
    (3) "P" 
    (4) "T" 
    (5) "X"
于 2012-04-17T20:00:52.790 に答える
0

これを試して

Dim aryHeats(numberOfStrings - 1) As ArrayList

Dim aryDrivers() As String
aryDrivers = txtBatch.Text.Split(",")

For i As Integer = 0 To aryDrivers.Length - 1
    aryHeats(  i Mod aryHeats.Length  ).Add(aryDrivers(i) & ",")

Next
于 2012-04-17T18:42:21.103 に答える