sólo estoy pidiendo esto, debido a que la misma pasó a mí cuando se trata de repetir un DataRowCollection
:¿Se actualizó el código antiguo de .NET en nuevas versiones?
DataSet s;
...
foreach (var x in s.Tables[0].Rows)
{
//IntelliSense doesn't work here. It takes 'x' as an object.
}
vi respuesta @Marc Gravell en Why is there no Intellisense with 'var' variables in 'foreach' statements in C#?, y ahora es claro para mí por qué ocurre esto.
yo decidimos tomar un vistazo al código de la clase DataRowCollection
y GetEnumerator()
es:
return this.list.GetEnumerator();
donde list
es un tipo DataRowTree
que hereda la clase abstracta RBTree<K>
(por cierto, no sabía que era una implementación de un Árbol Rojo-Negro en .NET antes de) que implementa IEnumerable
en lugar de IEnumerable<K>
.
¿Es demasiado difícil hacer RBTree<K>
implementar IEnumerable<K>
? Eso resolvería el problema principal aquí.
Supongo que fue desarrollado así en versiones anteriores de .NET, pero eso ya no tiene sentido, ¿o sí?
Mi pregunta es:
se actualiza viejo código .NET en las nuevas versiones? (por ejemplo, hacer DataRowCollection
implemento IEnumerable<DataRow>
en lugar de IEnumerable
)
Umm, estoy casi seguro de que * no hay * una clase 'RBTree' en .NET Framework. [Creo que Java tiene uno] (http://net0.datastructures.net/doc4/net/datastructures/RBTree.html), pero no está en BCL. ¿De dónde sacas eso? –
@Cody Es * interno * y está bajo el espacio de nombres 'System.Data'. El reflector te dirá esto. Primero tenía dudas sobre esto, pero también tiene un * enum * 'NodeColor'. ¿Me equivoco? –
** Downvoter **: ¿Podría dejar un comentario, por favor? –