Как я могу сгенерировать List<String> из вложенных объектов?

У меня есть следующие вложенные классы:

class Report
{
    List<ReportItem> list;
}

class ReportItem
{
    public string str1;
    public string str2;
}

Без добавления каких-либо новых методов в вышеупомянутые классы, если у меня есть Report rКак я могу создать List<String> из всех str1 струны, сгруппированные в r.list?

Нет Linq, как я использую VS2005.

2 ответа

В зависимости от версии.NET вы можете использовать Array.ConvertAll функция для перевода элементов, как это:

new List<string>(Array.ConvertAll(list.ToArray(), delegate(Report item){ return item.str1; }));

Хотя это немного грязно.

List<string> resultList = new List<string>();
foreach (ReportItem ri in r.list) { resultList.Add(ri.str1); }
Другие вопросы по тегам