Сокращение для True False, например TF для массивов в C #? [закрыто]C#

Место общения программистов C#
Ответить
Anonymous
 Сокращение для True False, например TF для массивов в C #? [закрыто]

Сообщение Anonymous »

При использовании больших логических массивов, например:

Код: Выделить всё

bool[] myBools = {true, false};
тот факт, что «истина» состоит из 4 символов, а «ложь» — 5, делает массив очень длинным. Он компактен в памяти, но не компактен в коде. Очевидно, что использование 0 и 1 не работает. Если бы я мог каким-то образом определить T как истинное, а F как ложное, это было бы великолепно.
В качестве обходного пути я попробовал использовать:

Код: Выделить всё

BitArray myBits = new BitArray();
различными способами использовать битовую нотацию 0b011001001001, поскольку она ОЧЕНЬ компактна в коде И памяти, но, как ни странно, BitArray, похоже, не имеет способа использовать биты в этом формате (поражает меня). BitArray удобен тем, что вы все равно можете использовать компактный if(myBits[n]) без дополнительного " == 1", поскольку он естественным образом оценивается как true/false.
Единственное решение, которое я придумал, — это просто использовать массивы byte[]. Он довольно компактен в памяти, допускает 0 и 1 для массива, но не так компактен, как BitArray или bool[], и вам придется использовать « == 1» в операторах if. Я подумывал написать это таким образом для компактности кода, но позже преобразовать его в логический массив в памяти, но это кажется глупым.

Подробнее здесь: https://stackoverflow.com/questions/798 ... rrays-in-c
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»