Ответ 1
var array = new[] { true, false, false };
var result = string.Join(", ", array.Select(b => b.ToString()).ToArray());
Console.WriteLine(result);
Как бы вы преобразовали массив логических элементов в строку типа "false", "true", "true", "false" - используя как можно меньше строк кода?
Python позволяет использовать следующие (очень красивые и чистые):
", ".join(map(str, [False, True, True, False]))
В С#, string.Join
позволяет мне только присоединиться к массиву строк.
Итак, что такое короткий способ сделать то же самое в С#?
var array = new[] { true, false, false };
var result = string.Join(", ", array.Select(b => b.ToString()).ToArray());
Console.WriteLine(result);
Как насчет:
String.Join(", ", new List<Boolean>() { true, false, false, true }.ConvertAll(x => x.ToString()).ToArray())
arrayOfBools.Select(x => x.ToString()).Aggregate((x, y) => x + ", " + y)
var boolStrings = string.Join(",", new List<bool> { false, true, true, false }
.ConvertAll(x => x.ToString()).ToArray());
Если вы используете .NET 4, следующей строки достаточно, потому что String.Join<T>
внутренне вызывает ToString()
-метод для каждого элемента.
Console.WriteLine(string.Join(", ", new[] { false, true, true, false }));
>>>> False, True, True, False
Что-то вдоль линий
var s = from item in blnArray select item.Tostring();
Затем используйте перечислимый s для заполнения массива строк?
На самом деле не проверял это - это то, как я мог бы подходить к нему, если бы меня попросили посмотреть на него...
var str = string.Join(", ", new List<Boolean>() {false, true, false}.ToArray());
Console.WriteLine(str.ToString());
var bools = new bool[] {false, true, true, false};
var strings = bools.Aggregate((x,y) => x.ToString()+","+y.ToString());