Vb.NET String.Format с ArrayList - PullRequest
2 голосов
/ 01 июня 2010

Я пытаюсь использовать arraylist в качестве параметра для String.Format.

            msg = msg & String.Format("<td>{0}</td>" & _
                                      "<td>{1}</td>" & _ 
                                      "<td>{2}</td>" & _ 
                                      "<td>{3}</td>" & _ 
                                      "<td>{4}</td>" & _ 
                                      "<td>{5}</td>" & _ 
                                      "<td>{6}</td>" & _ 
                                      "<td>{7}</td>" & _
                                      "<td>{8}</td>", param)

, где param - это ArrayList и, таким образом, содержимое (копируется из списка наблюдения):

+       (0) 9 {Integer} Object
+       (1) 3 {Integer} Object
+       (2) 5 {Integer} Object
+       (3) "180" {String}  Object
+       (4) 0D {Decimal}    Object
+       (5) 6.788D {Decimal}    Object
+       (6) #3/13/2009# {Date}  Object
+       (7) "2004" {String} Object
+       (8) "" {String} Object

Но этот код вызывает исключение FormatException

Index (zero based) must be greater than or equal to zero and less than the size of the argument list.

Я ошибаюсь, что можно использовать arraylist? Если это возможно, какие-либо подсказки относительно того, почему это будет бросать такую ​​ошибку?

Спасибо

Ответы [ 2 ]

3 голосов
/ 01 июня 2010

Принимает ли ArrayList?

Вы пробовали:

 "<td>{8}</td>", param.ToArray())
1 голос
/ 01 июня 2010

Возможно, вам нужно передать массив объектов, а не ArrayList. Если вы измените код как таковой, вы можете увидеть, что идет не так:

 msg = msg & String.Format("<td>{0}</td>", param)

Это должно напечатать что-то вроде

System.ArrayList

Вы пробовали это?

 msg = msg & String.Format("<td>{0}</td>" & _
                           "<td>{1}</td>" & _ 
                           "<td>{2}</td>" & _ 
                           "<td>{3}</td>" & _ 
                           "<td>{4}</td>" & _ 
                           "<td>{5}</td>" & _ 
                           "<td>{6}</td>" & _ 
                           "<td>{7}</td>" & _
                           "<td>{8}</td>", param.ToArray())
...