Чистый код для преобразования bool [] → "false, true, true, false"

Как бы вы преобразовали массив логических элементов в строку типа "false", "true", "true", "false" - используя как можно меньше строк кода?

Python позволяет использовать следующие (очень красивые и чистые):

", ".join(map(str, [False, True, True, False]))

В С#, string.Join позволяет мне только присоединиться к массиву строк.

Итак, что такое короткий способ сделать то же самое в С#?

Ответ 1

var array = new[] { true, false, false };
var result = string.Join(", ", array.Select(b => b.ToString()).ToArray());
Console.WriteLine(result);

Ответ 2

Как насчет:

String.Join(", ", new List<Boolean>() { true, false, false, true }.ConvertAll(x => x.ToString()).ToArray())

Ответ 3

arrayOfBools.Select(x => x.ToString()).Aggregate((x, y) => x + ", " + y)

Ответ 4

var boolStrings = string.Join(",", new List<bool> { false, true, true, false }
      .ConvertAll(x => x.ToString()).ToArray());

Ответ 5

Если вы используете .NET 4, следующей строки достаточно, потому что String.Join<T> внутренне вызывает ToString() -метод для каждого элемента.

Console.WriteLine(string.Join(", ", new[] { false, true, true, false }));

>>>> False, True, True, False

Ответ 6

Что-то вдоль линий

var s = from item in blnArray select item.Tostring();

Затем используйте перечислимый s для заполнения массива строк?

На самом деле не проверял это - это то, как я мог бы подходить к нему, если бы меня попросили посмотреть на него...

Ответ 7

 var str = string.Join(", ", new List<Boolean>() {false, true, false}.ToArray());
 Console.WriteLine(str.ToString());

Ответ 8

var bools = new bool[] {false, true, true, false};
var strings = bools.Aggregate((x,y) => x.ToString()+","+y.ToString());