Take a look at this approach. You're on the right track, but you need to think of the form itself. The form has a collection property called Controls. If you instantiate controls in your for loop, you can effectively add each control sequentially. First, create your LinkButton instance and assign it's properties. Then, create whatever sort of separator control you would like to use. I used an HtmlGenericControl in this example which allows us to assign a text property (of Separator). Notice I started my loop at 1 instead of zero to match your example ... hopefully this helps.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
for (int i = 1; i < 11; i++)
{
LinkButton linkButton = new LinkButton();
linkButton.Text = "Lnk" + i;
linkButton.Click += linkButton_Click;
form1.Controls.Add(linkButton);
HtmlGenericControl p = new HtmlGenericControl("p");
p.InnerText = "Separator";
form1.Controls.Add(p);
}
}
void linkButton_Click(object sender, EventArgs e)
{
Response.Redirect("http://www.stackoverflow.com");
}
}