фильтрация объектов из списка с помощью foreach - PullRequest
1 голос
/ 18 августа 2011

Привет, у меня есть список объектов, но как мне отфильтровать его в другой список?

Ex:

public class Person
{
    public string FirstName;
    public string Language;

    public Person (string FirstName, string Language)
    {
        this.FirstName = FirstName;
        this.LastName = Language;            
    }
 }

Создает список:

public List<Person> createDummyList()
{
  List<Person> dummyList = new List<Person>();
  dummyList.Add(new Person("Per", "English"));
  dummyList.Add(new Person("Linda", "Spanish"));
}

Как я могу получить список только с языком, а затем связать его, чтобы сказать выпадающий список.? Я попробовал что-то подобное, но получил нулевую ссылку ...

public void filterList(List<Person> ListToBeFiltered)
{
    List<string> LanguageList = new List<string>();
    ListToBeFiltered.ForEach(delegate(Person P) 
    {
       LanguageList.Add(P.Language);
    });
    DropDown.datasource = LanguageList;
    DropDown.databind();
 }

Кто-нибудь может указать мне правильное направление?

Ответы [ 2 ]

4 голосов
/ 18 августа 2011
IEnumerable<string> languageList = listToBeFiltered.Select(p=>p.Language)
                                                   .Distinct()
                                                   .ToList();
0 голосов
/ 18 августа 2011
public void filterList(List<Person> ListToBeFiltered)
{
        DropDown.datasource = ListToBeFiltered.Select(p=>p.Language).Distinct();
        DropDown.databind();
}
...