Вы можете использовать анонимные типы для этого в C #:
var ItemMap = new[] { new { val = 1, color = 2, desc = "test" },
new { val = 2, color = 3 , desc = "test" } };
string description = ItemMap[0].desc;
Это, однако, приведет к созданию одномерного массива анонимного класса для вас, не являющегося структурой, а также только для чтения. Если вам определенно нужен изменяемый тип структуры / значения, вам придется объявить структуру вне вашего метода.