Reputation: 2258
foreach (SessionTeacher sessionTeacher in sessionTeachers)
{
Person person = EMS.PWDAL.DALHelper.GetPersonByID(sessionTeacher.PersonID);
ltrlSpeakers.Text += person.Name1 + ", ";
}
here ltrlSpeakers.Text
will have something like this "abc, def, " that is extra comma and space at the end which I have to remove.
// removing extra comma and space
ltrlSpeakers.Text = ltrlSpeakers.Text.ToString().Remove(ltrlSpeakers.Text.ToString().Length - 2, 2);
it's working fine but is there a better more efficient simple way?
Upvotes: 1
Views: 211
Reputation: 70
best way is
ltrlSpeakers.Text =
String.Join(", ",
sessionTeachers
.Select(teacher => EMS.PWDAL.DALHelper.GetPersonByID(teacher.PersonID).Name1)
.ToArray()
);
ltrlSpeakers.Text = ltrlSpeakers.Text.trimend(',')
Upvotes: -1
Reputation: 4628
Try Using LINQ:
string result = string.Join(",",
(from t in sessionTeachers select EMS.PWDAL.DALHelper.GetPersonByID(t.PersonID).Name1))
Upvotes: 3
Reputation: 8832
Try it like this:
ltrlSpeakers.Text =
String.Join(", ",
sessionTeachers
.Select(teacher => EMS.PWDAL.DALHelper.GetPersonByID(teacher.PersonID).Name1)
.ToArray()
);
Upvotes: 1
Reputation: 56716
Something like this:
var personNames = sessionTeachers.Select(
st => EMS.PWDAL.DALHelper.GetPersonByID(st.PersonID).Name1);
ltrlSpeakers.Text = string.Join(", ", personNames);
Upvotes: 4
Reputation: 49013
Use the built-in String.Join method instead.
ltrlSpeakers.Text = string.Join(
", ",
sessionTeachers.Select(z => z.EMS.PWDAL.DALHelper.GetPersonByID(z.PersonID).Name1);
Upvotes: 1