asp.net 用分隔符连接字符串的有效方法?

xv8emn3q  于 11个月前  发布在  .NET
关注(0)|答案(5)|浏览(105)
foreach (SessionTeacher sessionTeacher in sessionTeachers)
{
   Person person = EMS.PWDAL.DALHelper.GetPersonByID(sessionTeacher.PersonID);
   ltrlSpeakers.Text += person.Name1 + ", ";
}

字符串
这里ltrlSpeakers.Text会有类似于“abc,def“的东西,也就是在结尾处额外的逗号和空格,我必须删除。

// removing extra comma and space

ltrlSpeakers.Text = ltrlSpeakers.Text.ToString().Remove(ltrlSpeakers.Text.ToString().Length - 2, 2);


工作很好但是有更好更有效的简单方法吗?

slhcrj9b

slhcrj9b1#

使用内置的String.Join方法。

ltrlSpeakers.Text = string.Join(
    ", ", 
    sessionTeachers.Select(z => z.EMS.PWDAL.DALHelper.GetPersonByID(z.PersonID).Name1);

字符串

ubof19bj

ubof19bj2#

试试这样:

ltrlSpeakers.Text = 
        String.Join(", ",
            sessionTeachers
                .Select(teacher => EMS.PWDAL.DALHelper.GetPersonByID(teacher.PersonID).Name1)
                .ToArray()
        );

字符串

uqzxnwby

uqzxnwby3#

最好的办法是

ltrlSpeakers.Text = 
        String.Join(", ",
            sessionTeachers
                .Select(teacher => EMS.PWDAL.DALHelper.GetPersonByID(teacher.PersonID).Name1)
                .ToArray()
        );
ltrlSpeakers.Text = ltrlSpeakers.Text.trimend(',')

字符串

2jcobegt

2jcobegt4#

大概是这样的:

var personNames = sessionTeachers.Select(
      st => EMS.PWDAL.DALHelper.GetPersonByID(st.PersonID).Name1);
ltrlSpeakers.Text = string.Join(", ", personNames);

字符串

7dl7o3gd

7dl7o3gd5#

尝试使用LINQ:

string result = string.Join(",",
(from t in sessionTeachers select EMS.PWDAL.DALHelper.GetPersonByID(t.PersonID).Name1))

字符串

相关问题