2011-08-18 4 views
1

안녕하세요. 개체 목록이 있지만 다른 목록으로 필터링하려면 어떻게해야합니까?foreach를 사용하는 목록의 개체 필터링

예 :

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

가 어떻게 그냥 언어 목록을 얻을 수 있습니다 후 결박 드롭 다운 말을 :

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

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

이 목록을 작성합니다.? 필자는 이와 같은 것을 시도했지만 null 참조를 얻었습니다 ...

누구나 올바른 방향으로 나를 가리킬 수 있습니까?

+0

LINQ 솔루션은 내 취향이 있지만 여기에 당신은 당신의 ListToBeFiltered에 간단한 foreach 문을 수행하고 languageList에 그 언어를 추가 할 수 있었다. – Carra

답변

4
IEnumerable<string> languageList = listToBeFiltered.Select(p=>p.Language) 
                .Distinct() 
                .ToList(); 
+3

당신은 아마 그의 마음을 날려 버렸을 것입니다. 미스터 T는 배울 몇 가지 기본 개념이있는 것 같습니다. 메서드에서 물건을 돌려주는 것. –

+0

Heh, 컴파일러는 반환하지 않고 컴파일하려고하자마자 그를 알려줄 것입니다. –

+0

heeh .. "public void ..."을 마음에 두지 마세요 ... –

0
public void filterList(List<Person> ListToBeFiltered) 
{ 
     DropDown.datasource = ListToBeFiltered.Select(p=>p.Language).Distinct(); 
     DropDown.databind(); 
} 
+0

신속한 답장을 보내 주셔서 감사합니다 ...하지만 드롭 다운으로 데이터 바인딩을 시도 할 때 여전히 "null 참조"가 있습니다. –

+0

Ohh ... 절대 신경 쓰지 마라. 그냥 내 변수 이름을 망쳤다 .... .... –

관련 문제