Что-то как String.Join(",", new string[] { "a", "b" });
, но для Guid[]
var guids = new Guid[] { Guid.Empty, Guid.Empty };
var str = /* Magic */
// str = 00000000-0000-0000-0000-000000000000,00000000-0000-0000-0000-000000000000
var str = guids.Select(g => g.ToString())
.Aggregate((working, next) => working + "," + next);
Когда ваш список Guids начнет расти, этот метод конкатенации вызовет проблемы с производительностью. Вы можете изменить его, чтобы использовать StringBuilder:
var str = guids.Select(g => g.ToString())
.Aggregate(new StringBuilder(),
(sb, str) => sb.Append("," + str),
sb => sb.ToString());
Оба этих способа являются сложными методами расширения LINQ. Можно также просто использовать String.Join:
var str = String.Join(",", guids.Select(g => g.ToString()).ToArray());
Я думал, это сработает?
StringBuilder stringBuilder = new StringBuilder();
int i = 0;
foreach (var guid in guids)
{
stringBuilder.Append(guid.ToString());
if (++i < guids.Length)
{
stringBuilder.Append(",");
}
}
var str = stringBuilder.ToString();
, если ваша структура> = .NET 3.5
String.Join(",", (from g in guids select g.ToString()).ToArray())
String.Join(",", Array.ConvertAll(guids, g => g.ToString()));
String.Join(",", guids.Select(g => g.ToString()).ToArray());
.NET 4 добавил метод String.Join
. Итак, в .NET 4 это будет работать:
String.Join(",", guids);