Здравствуйте, Sinclair, Вы писали:
S>Здравствуйте, Serginio1, Вы писали:
S>> Ну наружу то выставляются свойства, а уж внутри эти свойства будут обращаться через MemoryMarshal
S>Кажется, что это плохая идея.
S>Дело в том, что если я хочу вычислять предикат типа where Name like 'A%', то категорически не нужно реализовывать его через Name.Substring(0, 1) == "A", где Name — это свойство, которое внутри там что-то делает через MemoryMarshal.
S>Честное вычисление этого свойства протянет дохрена данных между диском и памятью (потенциально у нас там — строка длиной в мегабайт), и выбросит их большую часть.
S>То есть вот этот вот Name.Substring сразу должен быть преобразован в какой-то код, который вычисляет Substring поверх "сырых" данных, а не поверх уже восстановленной строки.
S>И крайне желательно вместо конверсии из ASCII/UTF8 перед сравнением сделать наоборот — конвертнуть "A" в ASCII/UTF8 и сравнивать сырые данные с ним.
Ну нынешними средствами C# пока так. Вот когда введут разного рода string как в Delphi например.
Почему нельзя ввести такие структуры непонятно.
А так вон 1С многое хранит в голых byte[]
https://infostart.ru/1c/articles/402038/