Самый простой способ - использовать расширения LINQ to DataSet. Сначала необходимо создать общий список (SearchSerialResults - это просто DTO в данном случае) из DataTable с использованием LINQ to DataSet.
var resultItems = (from DataRow dr in _returnedData.AsEnumerable()
select new SearchSerialResults
{
ContractLineItem = (int)dr["fldContractLineItemID"],
SearchItem = (string)dr["Search Item"],
Customer = (string)dr["Customer"],
DeviceFound = (string)dr["Device Found"],
Country = (string)dr["Country"],
City = (string)dr["City"],
ContractNumber = (string)dr["Contract Number"],
QuoteNumber = (string)dr["Quote Number"],
BeginDate = (string)dr["Begin Date"],
EndDate = (string)dr["End Date"]
}).ToList();
_returnedData - это DataTable в этом случае. Шаг 2, чтобы сделать преобразование. В этом случае я возвращаю объект Json для jqGrid.
var jsonObject = new
{
total = totalPages,
pageSize,
records = totalRecords,
rows = (from SearchSerialResults item in resultItems
select new
{
id = item.ContractLineItem,
cell = new[]
{
item.ContractLineItem.ToString(),
item.SearchItem,
item.DeviceFound,
item.Customer,
item.ContractNumber,
item.QuoteNumber,
item.Country,
item.City,
item.BeginDate,
item.EndDate,
""
}
}).ToArray()
};
return Json(jsonObject) // for MVC