我目前在C#中的代码遇到麻烦。我想拆分没有修复值的字符串。这里'我的代码请帮我解决这个问题。
protected void GridViewArchives_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
DataRowView drView = (DataRowView)e.Row.DataItem;
Literal litAuthors = (Literal)e.Row.FindControl("ltAuthors");
string authors = drView["Author(s)"].ToString();
//authors = Trent Riggs:Trent.Riggs@Emerson.com|Joel Lemke:Joel.Lemke@Emerson.com
string[] splitauthors = authors.ToString().Split("|".ToCharArray());
foreach (string authornames in splitauthors)
{
litAuthors.Text = string.Format("{0}<br /><br />", authornames);
}
}
}
我面临的问题是,当我渲染页面时,它只显示一个字符串值,并且不显示数组中的后续字符串。
用“|”分割字符串后delimeter我想用名称和电子邮件地址拆分字符串和分隔符“:”。我该怎么做?
答案 0 :(得分:2)
您可以使用String.Join
方法代替foreach
循环:
string authors = drView["Author(s)"].ToString();
string[] splitAuthors = authors.Split('|');
litAuthors.Text = string.Join("<br /><br />", splitAuthors) + "<br /><br />";
修改强>
我刚刚注意到你问题的第二部分 - 将作者的姓名和电子邮件地址分开。您可以返回使用foreach
循环并执行以下操作:
string authors = drView["Author(s)"].ToString();
string[] splitAuthors = authors.Split('|');
StringBuilder sb = new StringBuilder();
foreach (string author in splitAuthors)
{
string[] authorParts = author.Split(':');
sb.Append("Name=").Append(authorParts[0]);
sb.Append(", ");
sb.Append("Email=").Append(authorParts[1]);
sb.Append("<br /><br />");
}
litAuthors.Text = sb.ToString();
答案 1 :(得分:1)
litAuthors.Text + = string.Format(“{0}
”,authornames);
答案 2 :(得分:0)
foreach (string authornames in splitauthors)
{
litAuthors.Text = string.Format("{0}<br /><br />", authornames);
}
请检查litAuthors.Text = string.Format("{0}<br /><br />", authornames);
在for循环中。
你应该使用
litAuthors.Text += string.Format("{0}<br /><br />", authornames);
答案 3 :(得分:0)
用分割后的字符串“|”我想要拆分 带有姓名和电子邮件地址的字符 与deimeter“:”。我该怎么办 此?
你是说这个吗?
foreach (string authornames in splitauthors)
{
string[] authorDetails = authornames.Split(':');
litAuthors.Text += string.Format("{0}<br /><br />", authorDetails[0]);
}
答案 4 :(得分:0)
像这样。
string authors = drView["Author(s)"].ToString();
//authors = Trent Riggs:Trent.Riggs@Emerson.com|Joel Lemke:Joel.Lemke@Emerson.com
string[] splitauthors = authors.ToString().Split("|".ToCharArray());
foreach (string author in splitauthors)
{
string[] emailNameSplit = author.Split(":".ToCharArray());
litAuthors.Text += string.Format("Name: {0} Email: {1}<br /><br />", emailNameSplit[0], emailNameSplit[1]);
}