Аккуратный код для преобразования bool []-> “ложь, верная, верная, ложная”

Как Вы преобразовали бы массив булевских переменных к строке как "ложь, верная, верная, ложная" - использующий как можно меньше строк кода?

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

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

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

Таким образом, что короткий путь состоит в том, чтобы сделать то же в C#?

10
задан John Saunders 7 February 2012 в 18:59
поделиться

6 ответов

var array = new[] { true, false, false };
var result = string.Join(", ", array.Select(b => b.ToString()).ToArray());
Console.WriteLine(result);
27
ответ дан 3 December 2019 в 13:40
поделиться
 var str = string.Join(", ", new List<Boolean>() {false, true, false}.ToArray());
 Console.WriteLine(str.ToString());
{{ 1}}
1
ответ дан 3 December 2019 в 13:40
поделиться

Как насчет:

String.Join(", ", new List<Boolean>() { true, false, false, true }.ConvertAll(x => x.ToString()).ToArray())
4
ответ дан 3 December 2019 в 13:40
поделиться
var boolStrings = string.Join(",", new List<bool> { false, true, true, false }
      .ConvertAll(x => x.ToString()).ToArray());
2
ответ дан 3 December 2019 в 13:40
поделиться

Что-то вроде

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

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

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

1
ответ дан 3 December 2019 в 13:40
поделиться

Вы не должны возвращать данные из метода. Сделайте возвращаемый тип недействительным - как задокументировано :

public delegate void ParameterizedThreadStart(Object obj)

Если необходимо знать результаты метода, необходимо просмотреть Синхронизацию потоков .

-121--4268365-

Здесь идет

// your original data as an array
$data = array(
    array(
        'id' => 1,
        'parentId' => null,
        'name' => 'item1'
    ),
    array(
        'id' => 2,
        'parentId' => null,
        'name' => 'item2'
    ),
    array(
        'id' => 3,
        'parentId' => 1,
        'name' => 'item3'
    ),
    array(
        'id' => 4,
        'parentId' => 2,
        'name' => 'item4'
    ),
    array(
        'id' => 5,
        'parentId' => 3,
        'name' => 'item5'
    ),
    array(
        'id' => 6,
        'parentId' => 3,
        'name' => 'item6'
    ),
);

Рекурсивная функция

function buildTree( $ar, $pid = null ) {
    $op = array();
    foreach( $ar as $item ) {
        if( $item['parentId'] == $pid ) {
            $op[$item['id']] = array(
                'name' => $item['name'],
                'parentId' => $item['parentId']
            );
            // using recursion
            $children =  buildTree( $ar, $item['id'] );
            if( $children ) {
                $op[$item['id']]['children'] = $children;
            }
        }
    }
    return $op;
}

print_r( buildTree( $data ) );

/*
Array
(
    [1] => Array
        (
            [name] => item1
            [parentId] => 
            [children] => Array
                (
                    [3] => Array
                        (
                            [name] => item3
                            [parentId] => 1
                            [children] => Array
                                (
                                    [5] => Array
                                        (
                                            [name] => item5
                                            [parentId] => 3
                                        )

                                    [6] => Array
                                        (
                                            [name] => item6
                                            [parentId] => 3
                                        )

                                )

                        )

                )

        )

    [2] => Array
        (
            [name] => item2
            [parentId] => 
            [children] => Array
                (
                    [4] => Array
                        (
                            [name] => item4
                            [parentId] => 2
                        )

                )

        )

)
*/
-121--3909681-
var bools = new bool[] {false, true, true, false};
var strings = bools.Aggregate((x,y) => x.ToString()+","+y.ToString());
1
ответ дан 3 December 2019 в 13:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: