Использование Enumerable.Take
:
foreach(var rssItem in rss.Channel.Items.Take(6)) {
// go time!
}
Обратите внимание, что
rss.Channel.Items.Take(6)
ничего не делает, кроме как создает реализацию IEnumerable
, которую можно повторить для получения первых шести элементов в перечислении Это функция отложенного выполнения LINQ to Objects.
Обратите внимание, что это предполагает .NET 3.5. Если вы работаете с более ранней версией .NET, вы можете использовать что-то вроде следующего:
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;
}
}
}
Тогда:
foreach(var rssItem in Take(rss.Channel.Items, 6)) {
// go time!
}
Это предполагает .NET 2.0. Если вы не используете .NET 2.0, вам следует серьезно подумать об обновлении.