Преобразование анонимного типа в DataTable - PullRequest
3 голосов
/ 02 сентября 2011

Какой самый быстрый способ преобразовать анонимный тип в DataTable?

Обновление: Я хочу получить и заполнить DataTable от анонимного типа. Если отражение необходимо, как я могу сделать это с помощью отражения?

Ответы [ 3 ]

10 голосов
/ 02 сентября 2011

Найдено здесь :

var result = from p in dataSource 
             group p by p.City into cities 
             select new { Property1 = cities.Key, Property 2= cities.Average(p => p.Age) }; 

dt.Columns.Add("Property1"); 
dt.Columns.Add("Property2"); 
foreach (var item in result) 
{   
    dt.Rows.Add(item.Property1,item.Property2);                 
}

Смотрите здесь для универсального решения: Преобразовать универсальный список / Enumerable в DataTable?

0 голосов
/ 01 марта 2017

/// Сводная информация заполняется датой (dt1)

Dim dt1 As New DataTable

dt1 = connection.LoadPoliceData ("")

/// Сводка заполняется датированным (dt2)

Dim DT2 As New DataTable

dt2 = connection.LoadDataCompare ("")

/// резюме объявляет о сохранении данных. где я хочу заполнить перечисляемые данные

Dim сохранить как новый DataTable

save.Columns.Add ("Имя", GetType (String))

save.Columns.Add ("Мобильный", GetType (String))

/// Сводка написания linq-запроса с объединением dt1 и dt2, и datatable (сохранить)

Dim data1 = (из datarow1 в dt1.AsEnumerable Присоединяйтесь к datarow2 в dt2.AsEnumerable On datarow1.Field (Of String) ("NameofPerson") равно datarow2.Field (Of String) ("Name") и datarow1.Field (Of String) ("Mobile") равно datarow2.Field (Of String) ("MobileNumber" «) Выберите save.LoadDataRow (New Object () {datarow1.Field (Of String) ("NameofPerson"), datarow2.Field (Of String) ("MobileNumber")}, False)). Distinct (). ToList ()

/// итоговое количество сохраняемых данных

Dim i = save.Rows.Count

0 голосов
/ 27 февраля 2017
///fill dt1
Dim dt1 As New DataTable  dt1 = connection.LoadPoliceData("")
///fll dt2
Dim dt2 As New DataTable  dt2 = connection.LoadDataCompare("")
////fill enumerable data(anonymous data) in dt , using linq query
Dim dt As New DataTable
dt.Columns.Add("Name", GetType(String))
dt.Columns.Add("Mobile", GetType(String))
Dim data1 = (From datarow1 In dt1.AsEnumerable Join datarow2 In  dt2.AsEnumerable
              On datarow1.Field(Of String)("NameofPerson") Equals  datarow2.Field(Of String)("Name") And datarow1.Field(Of String)("Mobile") Equals datarow2.Field(Of String)("MobileNumber")
              Select dt.LoadDataRow(New Object() {datarow1.Field(Of String)("NameofPerson"), datarow2.Field(Of String)("MobileNumber")}, False)).Distinct().ToList()

Dim i = dt.Rows.Count

запись в dt (переменная с датой)

...