Uso Enumerable.Take
:
foreach(var rssItem in rss.Channel.Items.Take(6)) {
// go time!
}
Tenga en cuenta que
rss.Channel.Items.Take(6)
no hace nada más que una instancia de una n implementación de IEnumerable
que puede repetirse para producir los primeros seis elementos en la enumeración. Esta es la característica de ejecución diferida de LINQ to Objects.
Tenga en cuenta además que esto supone .NET 3.5. Si está trabajando con una versión anterior de .NET, se puede usar algo en la línea de lo siguiente:
static IEnumerable<T> Take<T>(IEnumerable<T> source, int take) {
if (source == null) {
throw new ArgumentNullException("source");
}
if (take < 0) {
throw new ArgumentOutOfRangeException("take");
}
if (take == 0) {
yield break;
}
int count = 0;
foreach (T item in source) {
count++;
yield return item;
if (count >= take) {
yield break;
}
}
}
continuación:
foreach(var rssItem in Take(rss.Channel.Items, 6)) {
// go time!
}
Esto supone .NET 2.0. Si no está usando .NET 2.0, debería considerar seriamente actualizar.
¿Qué 6? Cualquier 6? ¿Primero 6? Aleatorio 6? Los 6 que satisfacen un cierto criterio? –
¿Qué versión de .NET? –
Si 'var' está en el código de muestra de la pregunta, es C# 3.0+ –