如何拆分多个字符串

时间:2009-10-20 10:04:27

标签: c# arrays split

我目前在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我想用名称和电子邮件地址拆分字符串和分隔符“:”。我该怎么做?

5 个答案:

答案 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]);
}