78 votes

Convertir DataRowCollection en IEnumerable <T>

Je voudrais faire quelque chose comme ceci dans .NET 3.5. Quel est le moyen le plus rapide?

 IEnumerable<DataRow> collection = 
    TypedDataSet.TypedTableBase<DataRow>.Rows as IEnumerable<DataRow>;
 

102voto

wsanville Points 22066

Vous pouvez appeler OfType<DataRow>() sur le DataRowCollection .

85voto

Dan Tao Points 60518

En supposant que vous utilisiez .NET 4.0, qui introduit la covariance:

 // Presumably your table is of some type deriving from TypedTableBase<T>,
// where T is an auto-generated type deriving from DataRow.
IEnumerable<DataRow> collection = myTypedTable;
 

Le type de table lui-même implémente IEnumerable<T> where T : DataRow .

Autrement:

 IEnumerable<DataRow> collection = myTypedTable.Cast<DataRow>();
 

Prograide.com

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.

Powered by:

X