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

それはうまく機能していますが、より効率的な簡単な方法はありますか?

4

5 に答える 5

3

このようなもの:

var personNames = sessionTeachers.Select(
      st => EMS.PWDAL.DALHelper.GetPersonByID(st.PersonID).Name1);
ltrlSpeakers.Text = string.Join(", ", personNames);
于 2013-03-01T12:38:10.273 に答える
3

LINQを使用してみてください:

string result = string.Join(",",
(from t in sessionTeachers select EMS.PWDAL.DALHelper.GetPersonByID(t.PersonID).Name1))
于 2013-03-01T12:39:02.083 に答える
1

代わりに、組み込みのString.Joinメソッドを使用してください。

ltrlSpeakers.Text = string.Join(
    ", ", 
    sessionTeachers.Select(z => z.EMS.PWDAL.DALHelper.GetPersonByID(z.PersonID).Name1);
于 2013-03-01T12:37:19.807 に答える
1

このようにしてみてください:

        ltrlSpeakers.Text = 
        String.Join(", ",
            sessionTeachers
                .Select(teacher => EMS.PWDAL.DALHelper.GetPersonByID(teacher.PersonID).Name1)
                .ToArray()
        );
于 2013-03-01T12:40:51.540 に答える
0

最善の方法は、ltrlSpeakers.Text = String.Join( "、"、sessionTeachers .Select(teacher => EMS.PWDAL.DALHelper.GetPersonByID(teacher.PersonID).Name1).ToArray());です。ltrlSpeakers.Text = ltrlSpeakers.Text.trimend('、')

于 2013-03-01T13:02:25.200 に答える