我正在尝试获取一个类中的数组,然后使用foreach语句将值迭代到表中。
我的班级设置如下:
public class items
{
private string[] list;
public items()
{
list[0] = "apples";
list[1] = "oranges";
list[2] = "grapes";
list[3] = "bananas";
}
}
在我的page_load
活动中,我试图打电话给班级:
list fruit = new list();
StringBuilder sb = new StringBuilder();
sb.Append("<table id=\"items\">");
sb.Append("<tr>");
sb.Append("<th>Item</th>");
sb.Append("<th>Description</th>");
sb.Append("<th>Unit Cost</th>");
foreach(string fruit in list)
{
sb.Append(String.Format("{0}", items.fruit));
}
我是使用foreach
循环的新手,它真的令人困惑。如果我走在正确的轨道上,我希望能有一些清晰度。
感谢。
答案 0 :(得分:1)
如果您想在水果列表周围为HTML表格构建标记,您应该将在每个单独项目周围做标记的部分放入循环中:
sb.Append("<table id=\"items\">");
sb.Append("<tr>");
sb.Append("<th>Item</th>");
sb.Append("<th>Description</th>");
sb.Append("<th>Unit Cost</th>");
sb.Append("</tr>");
foreach(var fruit in list) { // Use "var" or the exact type for the fruit
sb.Append("<tr>");
// I am assuming here that the fruit has Description and Cost.
// You may need to replace these names with names of actual properties
sb.Append(String.Format("<td>{0}</td>", fruit.Description));
sb.Append(String.Format("<td>{0}</td>", fruit.Cost));
sb.Append("</tr>");
}
sb.Append("</table>");
答案 1 :(得分:0)
你想要的是这个:
sb.Append("<table id=\"items\">");
sb.Append("<tr>");
sb.Append("<th>Item</th>");
sb.Append("<th>Description</th>");
sb.Append("<th>Unit Cost</th>");
sb.Append("</tr>");
foreach(string fruit in list)
{
sb.Append("<tr>");
sb.Append(String.Format("{0}", fruit));
sb.Append("description");
sb.Append(String.Format("2p");
sb.Append("</tr>");
}
sb.Append("</table>");
答案 2 :(得分:0)
尝试
foreach(string s in fruit)
{
sb.Append(String.Format("{0}", s));
{
答案 3 :(得分:0)
您的代码存在一些问题。首先,items.list
类之外无法访问items
,因此无法在page_load
事件中迭代它。你必须让它可以访问:
public class items
{
private string[] list;
public string[] List
{
get { return list; }
}
// ...
}
现在,您将能够像items
那样实例化page_load
课程:
items fruit = new items();
循环遍历List
类的items
属性:
foreach(string f in fruit.List)
{
sb.Append(String.Format("{0}", f));
}
答案 4 :(得分:0)
使用Linq
:假设您的数组是水果
fruit.ToList().ForEach(f=> sb.Append(String.Format("{0}", f));
理想情况下,如果您的列表中有description
和unitCost
,则可以将所有<tr>
标记添加到表格主体中;
StringBuilder sb = new StringBuilder();
sb.Append("<table id=\"items\">");
sb.Append("<tr><th>Item</th><th>Description</th><th>Unit Cost</th></tr>");
newList.ToList()
.ForEach(f=>
sb.Append(String.Format("<tr><td>{0}</td><td>{1}</td><td>{2}</td></tr>",
f.item, f.desc, f.unitCost))
);
sb.Append("</table>");