C# Класс Platform.Data.Core.Collections.BitString

А что если хранить карту значений, где каждый бит будет означать присутствует ли блок в 64 бит в массиве значений. 64 бита по 0 бит, будут означать отсутствие 64-х блоков по 64 бита. Т.е. упаковка 512 байт в 8 байт. Подобный принцип можно применять и к 64-ём блокам и т.п. По сути это карта значений. С помощью которой можно быстро проверять есть ли значения непосредственно далее (ниже по уровню). Или как таблица виртуальной памяти где номер блока означает его присутствие и адрес. TODO: Compare what is faster to store BitSetsIn16Bits or to calculate it TODO: Avoid int usage (replace to long)
Показать файл Открыть проект Примеры использования класса

Открытые методы

Метод Описание
And ( BitString other ) : BitString
BitString ( BitString bits ) : System
BitString ( int length, bool defaultValue ) : System
BitString ( long length ) : System
Clone ( ) : object
CountCommonBits ( BitString other ) : int
CountSet ( ) : int
Get ( long index ) : bool
GetCommonIndices ( BitString other ) : List
GetFirstSetBitIndex ( ) : int
GetLastCommonBitIndex ( BitString other ) : int
GetLastSetBitIndex ( ) : int
GetSetIndeces ( ) : List
GetSetIndecesCount ( ) : int
GetSetUInt64Indices ( ) : List
HaveCommonBits ( BitString other ) : bool
Not ( ) : BitString
Or ( BitString value ) : BitString
Reset ( long index ) : void
Set ( long index ) : void
Set ( long index, bool value ) : void
SetAll ( bool value ) : void
Xor ( BitString value ) : BitString
this ( int index ) : bool

Приватные методы

Метод Описание
BitString ( ) : System
EnsureArgumentIsValid ( BitString other ) : void
GetCore ( long index ) : bool
RefreshBordersByWord ( long wordIndex ) : void
ResetCore ( long index ) : void
SetCore ( long index ) : void

Описание методов

And() публичный Метод

public And ( BitString other ) : BitString
other BitString
Результат BitString

BitString() публичный Метод

public BitString ( BitString bits ) : System
bits BitString
Результат System

BitString() публичный Метод

public BitString ( int length, bool defaultValue ) : System
length int
defaultValue bool
Результат System

BitString() публичный Метод

public BitString ( long length ) : System
length long
Результат System

Clone() публичный Метод

public Clone ( ) : object
Результат object

CountCommonBits() публичный Метод

public CountCommonBits ( BitString other ) : int
other BitString
Результат int

CountSet() публичный Метод

public CountSet ( ) : int
Результат int

Get() публичный Метод

public Get ( long index ) : bool
index long
Результат bool

GetCommonIndices() публичный Метод

public GetCommonIndices ( BitString other ) : List
other BitString
Результат List

GetFirstSetBitIndex() публичный Метод

public GetFirstSetBitIndex ( ) : int
Результат int

GetLastCommonBitIndex() публичный Метод

public GetLastCommonBitIndex ( BitString other ) : int
other BitString
Результат int

GetLastSetBitIndex() публичный Метод

public GetLastSetBitIndex ( ) : int
Результат int

GetSetIndeces() публичный Метод

public GetSetIndeces ( ) : List
Результат List

GetSetIndecesCount() публичный Метод

public GetSetIndecesCount ( ) : int
Результат int

GetSetUInt64Indices() публичный Метод

public GetSetUInt64Indices ( ) : List
Результат List

HaveCommonBits() публичный Метод

public HaveCommonBits ( BitString other ) : bool
other BitString
Результат bool

Not() публичный Метод

public Not ( ) : BitString
Результат BitString

Or() публичный Метод

public Or ( BitString value ) : BitString
value BitString
Результат BitString

Reset() публичный Метод

public Reset ( long index ) : void
index long
Результат void

Set() публичный Метод

public Set ( long index ) : void
index long
Результат void

Set() публичный Метод

public Set ( long index, bool value ) : void
index long
value bool
Результат void

SetAll() публичный Метод

public SetAll ( bool value ) : void
value bool
Результат void

Xor() публичный Метод

public Xor ( BitString value ) : BitString
value BitString
Результат BitString

this() публичный Метод

public this ( int index ) : bool
index int
Результат bool