我有一个foreach
循环取出所有内容,但我希望它在10之后停止。看来我应该使用for
代替。但我不明白如何在分配所需的var。
@foreach (var p in posts)
{
<item>
<title>@p.GetProperty("zContentTitle").Value</title>
<dc:creator>@p.GetProperty("zPostAuthor").Value</dc:creator>
<category>@p.GetProperty("zPostCategories")</category>
<description>@p.GetProperty("zContentBody").Value.StripHtml().Trim()</description>
<link>http://@Request.Url.Host@landing.Url@p.Url</link>
<guid isPermaLink="false">http://@Request.Url.Host@landing.Url@p.Url</guid>
<pubDate>@p.GetProperty("zPostDate").Value.FormatDateTime("ddd, dd MMM yyyy HH:mm:ss") CST</pubDate>
</item>
}
答案 0 :(得分:2)
鉴于少量代码很难说,你应该使用哪些选项。
中似乎是“帖子”@foreach (var p in posts)
{
...
}
的类型为IEnumerable。所以你可以使用扩展方法Take()。你的代码看起来像这样:
@foreach (var p in posts.Take(10))
{
<item>
<title>@p.GetProperty("zContentTitle").Value</title>
<dc:creator>@p.GetProperty("zPostAuthor").Value</dc:creator>
<category>@p.GetProperty("zPostCategories")</category>
<description>@p.GetProperty("zContentBody").Value.StripHtml().Trim()</description>
<link>http://@Request.Url.Host@landing.Url@p.Url</link>
<guid isPermaLink="false">http://@Request.Url.Host@landing.Url@p.Url</guid>
<pubDate>@p.GetProperty("zPostDate").Value.FormatDateTime("ddd, dd MMM yyyy HH:mm:ss") CST</pubDate>
</item>
}
答案 1 :(得分:0)
如果posts
实现IEnumerable界面,如果您使用System.Linq
,则可以执行此操作。
@foreach (var p in posts.Take(10))
否则你可以做点像......
@{ var counter = 0; }
@foreach(var p in posts) {
counter++;
if (counter == 10)
break;
<item>
<title>@p.GetProperty("zContentTitle").Value</title>
<dc:creator>@p.GetProperty("zPostAuthor").Value</dc:creator>
<category>@p.GetProperty("zPostCategories")</category>
<description>@p.GetProperty("zContentBody").Value.StripHtml().Trim()</description>
<link>http://@Request.Url.Host@landing.Url@p.Url</link>
<guid isPermaLink="false">http://@Request.Url.Host@landing.Url@p.Url</guid>
<pubDate>@p.GetProperty("zPostDate").Value.FormatDateTime("ddd, dd MMM yyyy HH:mm:ss") CST</pubDate>
</item>
}