Ошибка Невозможно применить индексирование через [] к выражению типа "object""

Вот код с ошибкой.

var List = db.Query<dynamic>("SELECT Name, Type, Parent FROM TreeView Where Level = 1");
foreach (dynamic el in List)
{
   MessageBox.Show(el[0].ToString()); //Выдает ошибку: Невозможно применить индексирование через [] к выражению типа "object""
   MessageBox.Show(el[1].ToString());
   MessageBox.Show(el[2].ToString());
}

Как привести el к массиву?
Если обращаюсь вот так - "MessageBox.Show(el.Name.ToString());", то все нормально.
Использую Dapper(ORM).


Ответы (2 шт):

Автор решения: Iron Man

Решение написал @Kir_Antipov:

var list = db.Query<dynamic>(...).Select(x => new object[] { x.Name, x.Type, x.Parent });
→ Ссылка
Автор решения: A K

Обычно когда используют Dapper то создают отдельный класс, а не гоняют в dynamic:

public class Tree
{
    public string Name { get; set; }
    public string Type { get; set; }
    public string Parent{ get; set; }
}

И не надо обращаться по индексу:

var List = db.Query<Tree>("SELECT Name, Type, Parent FROM TreeView Where Level = 1");
foreach (var element in List)
{
    MessageBox.Show(element.Name);
    MessageBox.Show(element.Type);
    MessageBox.Show(element.Parent);

}
→ Ссылка