Здравствуйте, Serginio1, Вы писали:
S> Ну наружу то выставляются свойства, а уж внутри эти свойства будут обращаться через MemoryMarshal
Кажется, что это плохая идея.
Дело в том, что если я хочу вычислять предикат типа where Name like 'A%', то категорически не нужно реализовывать его через Name.Substring(0, 1) == "A", где Name — это свойство, которое внутри там что-то делает через MemoryMarshal.
Честное вычисление этого свойства протянет дохрена данных между диском и памятью (потенциально у нас там — строка длиной в мегабайт), и выбросит их большую часть.
То есть вот этот вот Name.Substring сразу должен быть преобразован в какой-то код, который вычисляет Substring поверх "сырых" данных, а не поверх уже восстановленной строки.
И крайне желательно вместо конверсии из ASCII/UTF8 перед сравнением сделать наоборот — конвертнуть "A" в ASCII/UTF8 и сравнивать сырые данные с ним.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.