J'ai une classe R
avec quelques propriétés.Impossible de convertir le type 'System.Data.EnumerableRowCollection <System.Data.DataRow>' en generic.list <T>
De même j'ai une DataTable
dt
avec des colonnes exactement les mêmes que les propriétés de la classe R
Je suis en train de créer deux différents DataTables
de ce qui précède dit DataTable
dt
basée sur une condition sur l'une des colonnes du dt
.
Et je veux convertir ces 2 Datatables
en List
de R
objets.
Voilà comment je suis en train avec maintenant des progrès:
List<R> Sheet1 = dt.AsEnumerable()
.Where(row => Convert.ToDecimal(row["SomeDecimalColumn"]) <= Convert.ToDecimal(80));
List<R> Sheet2 = dt.AsEnumerable()
.Where(row => Convert.ToDecimal(row["SomeDecimalColumn"]) > Convert.ToDecimal(80));
Mais il renvoie une erreur:
Cannot convert type 'System.Data.EnumerableRowCollection' to generic.list
J'ai essayé de faire toutes sortes de casting, mais sans utilisation:
List<R> Sheet1 = (List<R>)dt.AsEnumerable()
.Where(row => Convert.ToDecimal(row["SomeDecimalColumn"]) <= Convert.ToDecimal(80));
List<R> Sheet2 = (List<R>)dt.AsEnumerable()
.Where(row => Convert.ToDecimal(row["SomeDecimalColumn"]) > Convert.ToDecimal(80));
List<R> Sheet1 = (List<R>)dt.AsEnumerable()
.Where(row => Convert.ToDecimal(row["SomeDecimalColumn"]) <= Convert.ToDecimal(80))
.ToList();
List<R> Sheet2 = (List<R>)dt.AsEnumerable()
.Where(row => Convert.ToDecimal(row["SomeDecimalColumn"]) > Convert.ToDecimal(80))
.ToList();
Qu'est-ce ici 'R'? Essayez d'utiliser la méthode 'st.Select' ou utilisez' var' au lieu de Liste –
Qu'est-ce que 'R'? Si ce n'est pas une sous-classe de 'System.Data.Row', vous devrez écrire du code pour initialiser un nouveau' R' à partir d'un 'System.Data.Row' existant. Le casting n'est pas magique. Quand vous lancez A à B, A doit être * un * B, ou il doit y avoir du code invoqué qui convertit un A * en * un B. –
Vous avez vraiment des classes comme 'R'? Des noms plus courts n'étaient pas disponibles? Je suppose que votre première classe était 'A' –