Самое быстрое преобразование массива Guid в строку и обратно? - PullRequest
6 голосов
/ 18 апреля 2011

В .NET 4.0 у меня иногда есть Guid [] или 200 элементов, которые все нуждаются в преобразовании в строку [], а иногда мне приходится делать обратное.

Какой самый быстрый / самый умный способсделать это?

Спасибо.

Ответы [ 3 ]

23 голосов
/ 18 апреля 2011

Альтернативой LINQ является Array.ConvertAll() в этом случае:

Guid[] guidArray = new Guid[100];
...
string[] stringArray = Array.ConvertAll(guidArray, x => x.ToString());
guidArray = Array.ConvertAll(stringArray, x => Guid.Parse(x));

Производительность во время выполнения, вероятно, такая же, как LINQ, хотя, вероятно, эточуть-чуть быстрее, так как он идет от и к массиву напрямую вместо перечисления.

2 голосов
/ 18 апреля 2011

Посмотрите, поможет ли это:

Guid[] guids = new Guid[200];
var guidStrings = guids.Select(g => g.ToString());
var revertedGuids = guidStrings.Select(g => Guid.Parse(g));
2 голосов
/ 18 апреля 2011

Что ж, если вы хотите использовать LINQ, myList.Select(o => o.ToString()) сделает это.

В противном случае заполнение List циклом foreach будет почти таким же лаконичным и будет работать с более старыми версиями.Net.

...