这有效吗?

时间:2013-03-01 12:36:00

标签: c# asp.net string performance

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);

它的工作正常,但是有更好的更有效的简单方法吗?

5 个答案:

答案 0 :(得分:3)

这样的事情:

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

答案 1 :(得分:3)

尝试使用LINQ:

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

答案 2 :(得分:1)

请改用内置的String.Join方法。

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

答案 3 :(得分:1)

试试这样:

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

答案 4 :(得分:0)

最好的方法是 ltrlSpeakers.Text =         String.Join(“,”,             sessionTeachers                 .Select(teacher => EMS.PWDAL.DALHelper.GetPersonByID(teacher.PersonID).Name1)                 .ToArray()         ); ltrlSpeakers.Text = ltrlSpeakers.Text.trimend(',')