Actuellement, j'utilise :
DataTable dt = CreateDataTableInSomeWay();
List<DataRow> list = new List<DataRow>();
foreach (DataRow dr in dt.Rows)
{
list.Add(dr);
}
Existe-t-il un moyen meilleur/magique ?
Actuellement, j'utilise :
DataTable dt = CreateDataTableInSomeWay();
List<DataRow> list = new List<DataRow>();
foreach (DataRow dr in dt.Rows)
{
list.Add(dr);
}
Existe-t-il un moyen meilleur/magique ?
Si vous utilisez .NET 3.5, vous pouvez utiliser DataTableExtensions.AsEnumerable
(une méthode d'extension) et ensuite si vous avez vraiment besoin d'une List<DataRow>
au lieu de simplement IEnumerable<DataRow>
vous pouvez appeler Enumerable.ToList
:
IEnumerable<DataRow> sequence = dt.AsEnumerable();
ou
using System.Linq;
...
List<DataRow> list = dt.AsEnumerable().ToList();
@Pandiya : Il existe plusieurs façons de convertir des données en JSON dans .NET. Personnellement, j'ai toujours utilisé la bibliothèque JSON.NET, mais il existe aussi d'autres approches.
List<Employee> emp = new List<Employee>();
//Maintaining DataTable on ViewState
//For Demo only
DataTable dt = ViewState["CurrentEmp"] as DataTable;
//read data from DataTable
//using lamdaexpression
emp = (from DataRow row in dt.Rows
select new Employee
{
_FirstName = row["FirstName"].ToString(),
_LastName = row["Last_Name"].ToString()
}).ToList();
Le code ci-dessus peut ne pas fonctionner parce que dt.Rows n'a pas implémenté 'AsEnumerable'. Ceci peut être corrigé comme suit : emp = (from DataRow row in dt.AsEnumerable() select new Employee { _FirstName = row["FirstName"].ToString(), _LastName = row["Last_Name"].ToString() }).ToList() ;
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.
3 votes
Qu'essayez-vous d'accomplir avec une liste que vous ne pouvez pas faire avec votre DataRowCollection ?
0 votes
Le mien est en retard mais j'espère qu'il sera utile. Solution de travail. stackoverflow.com/a/58607820/9048996