Создание объекта с динамическими свойствами в C # - PullRequest
5 голосов
/ 26 августа 2010

Я использую linq для загрузки файла csv, но поскольку в csv может быть любое количество столбцов, возвращаемому объекту потребуются динамические свойства, и я не могу понять, как это сделать.

var data = from row in csvData
       let col = row.Split(',')
       select new
              {
                  Field1 = data[0],
                  Field2 = data[1],
                  Field3 = data[2] // etc, etc
              };

Если возможно, я бы хотел назвать свойства по имени, указанному в CSV-файле, а не по field1, field2 и т. Д.

Спасибо!

Ответы [ 2 ]

7 голосов
/ 26 августа 2010

Что бы вы сделали с этим потом?Если вы знаете имена в других местах и ​​используете .NET 4, вы могли бы использовать ExpandoObject - заполните его, используя в качестве словаря, а затем получите доступ к именам свойств сдинамическая печать позже.Но если он все динамический (то есть вы статически ничего не знаете), почему бы вам просто не использовать Dictionary<string, string>?

1 голос
/ 26 августа 2010

Вы можете просто использовать массивы или даже словарь, но если вы хотите сделать что-нибудь классное с динамическим извлечением Clay

http://weblogs.asp.net/bleroy/archive/2010/08/18/clay-malleable-c-dynamic-objects-part-2.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...