ICollection <string>в строку [] - PullRequest
       24

ICollection <string>в строку []

16 голосов
/ 30 ноября 2008

У меня есть объект типа ICollection<string>. Какой лучший способ конвертировать в string[].

Как это можно сделать в .NET 2?
Как это можно сделать чище в более поздней версии C #, возможно используя LINQ в C # 3?

Ответы [ 3 ]

30 голосов
/ 30 ноября 2008

Вы можете использовать следующий фрагмент для преобразования его в обычный массив:

string[] array = new string[collection.Count];
collection.CopyTo(array, 0);

Это должно сделать работу:)

8 голосов
/ 30 ноября 2008

Если вы используете C # 3.0 и .Net Framework 3.5, вы должны уметь:

ICollection<string> col = new List<string>() { "a","b"};
string[] colArr = col.ToArray();

конечно, вы должны иметь «using System.Linq;» вверху файла

6 голосов
/ 30 ноября 2008

В (тривиальном) случае ICollection<String> используйте ToArray:

String[] GetArray(ICollection<String> mycoll)
{
    return mycoll.ToArray<String>();
}

РЕДАКТИРОВАТЬ: с .Net 2.0, вы можете вернуть массив с дополнительным List<String>:

String[] GetArray(ICollection<String> mycoll)
{
    List<String> result = new List<String>(mycoll);
    return result.ToArray();
}
...