【发布时间】:2020-11-18 11:54:25
【问题描述】:
我在这里有没有条件的工作示例。
public string RenderPostTags(DMCResultSet resultSet)
{
string output = "";
string filterForm = RenderFilterForm(resultSet);
string pagination = RenderPagination(resultSet);
List<XElement> items = resultSet.items;
foreach(XElement i in items)
{
string tags = "";
if (i.Element("tags") != null)
{
foreach(string tag in i.Element("tags").Elements("tag"))
{
tags += "<a href=\"?tag=" + HttpUtility.UrlEncode(tag) + "\">" + tag + "</a>";
}
}
output += tags;
}
return output;
}
我知道仅仅依靠它是行不通的,但我尝试了几种不同的方法,但它们对我没有用。可能是语法错误我是个 C# 菜鸟。
但我需要使用类似于此的 if else 条件输出调整后的 html
public string RenderPostTags(DMCResultSet resultSet){
string output = "";
string filterForm = RenderFilterForm(resultSet);
string pagination = RenderPagination(resultSet);
List<XElement> items = resultSet.items;
foreach(XElement i in items){
string tags = "";
if (i.Element("tags") != null) {
int count = 1;
int total = i.Element("tags").Elements("tag").Count;
foreach(string tag in i.Element("tags").Elements("tag")) {
if(count == total){
tags += "<a href=\"?tag=" + HttpUtility.UrlEncode(tag) + "\">" + tag + "</a>";
count++;
}else{
tags += "<a href=\"?tag=" + HttpUtility.UrlEncode(tag) + "\">" + tag +","+ " " + "</a>";
count++;
}
}
}
output += tags;
}
return output;
}
我尝试过的方法可以在这个帖子上找到。 Foreach loop, determine which is the last iteration of the loop
感谢您的帮助。
【问题讨论】:
-
当不在循环的最后一次交互时,我需要在我的 HTML 输出中添加空格和逗号。问题是我在迭代最终项目时难以设置监控机制。希望有帮助
-
counter 不会改变,除非你放 counter++;在 foreach 循环内。
-
您是否要在循环中获取计数?如果是这样,为什么不使用旧的
for循环? -
好的,所以在循环外声明一个
count变量并将其设置为1。通过var total = items.Count()获取循环外项目的总数。然后在每次迭代的循环内将计数增加 1,请参阅if(count == total) -
好的,我已经继续并更新了上面的代码以使其可读。感谢您迄今为止的帮助。
标签: c#