Как объединить элементы ArrayList, преобразовав его в строковое представление? - PullRequest
3 голосов
/ 14 января 2011

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

Dim s As String = String.Join(",", TryCast(myArrayList.ToArray(GetType(String)), String()))

однако, я бы знал, если есть более умный / короткий метод, чтобы получить тот же результат, или тот же код, который выглядит лучше ...

Заранее спасибо,

Макс

Ответы [ 3 ]

4 голосов
/ 14 января 2011

В Framework 4 это действительно просто:

var s = string.Join(",", myArrayList);

В 3.5 с методами расширения LINQ:

var s = string.Join(",", myArrayList.Cast<string>().ToArray());

Они короче, но не умнее.

Iпонятия не имею, как они должны быть написаны с VB.NET.

3 голосов
/ 05 июня 2014

Я знаю, что это старый вопрос, но, поскольку мне пришлось сегодня решить это для себя, я решил опубликовать решение VB.Net, которое придумал:

Private Function MakeCsvList() As String
  Dim list As New List(Of String)
  list.Add("101")
  list.Add("102")

  Return Strings.Join(list.ToArray, ",")
End Function
2 голосов
/ 14 января 2011

Я бы сделал метод расширения ArrayList например

public static string ToCsv(this ArrayList array)
{
    return String.Join(",", TryCast(array.ToArray(GetType(String)), String()))
}

Использование

string csv = myArrayList.ToCsv();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...