2011-08-02 8 views
0

일부 특성이있는 개체 목록을 얻었고이 목록을 채운 후에이 개체의 특정 변수에서 모든 요소를 ​​가져 와서 새로운 INT 목록에 넣기를 원합니다. 예를 들어 보겠습니다 :개체 목록에서 모든 요소 가져 오기

public class Obj1 
{ 
    public int id {get; set; } 
    public string name {get; set; } 
    public int? age {get; set; } 
} 

public List<int> GetAgeList(List<Obj1> list) 
{ 
    List<int> ageList = list.age;//The idea is add all ages into the list.. 
    return ageList; 
} 

고마워요!

+1

이것은 간단한 질문입니다. 바로 답을하면 ... 궁금한 점이 있습니다. 무엇을 해결하려고합니까? – Coeffect

답변

2

마니 마코가 맞습니다 - 시도한 것을 제공해야합니다 :) 이렇게하는 방법에는 여러 가지가 있습니다. 어쩌면 List (특히 확장 방법 절)을 찾아 LINQ을 배우기 시작해야합니다.

.Select() 일반 목록 유형의 확장 방법을 사용하십시오.

public List<int> GetAgeList(List<Obj1> list) 
{ 
    return list.Select(o => o.age).ToList(); 
} 
+0

안녕하세요, 정보 부족으로 유감입니다. Obj1을 Obj1로 수정하여 명확하게했습니다. 당신에게 제안을 사용하고 그저 IEnumerable을 캐스팅해야한다고 말했습니다. List

+0

@ Dan-SP'Obj1'이 위에서 정의한 것과 정확히 같으면'age'는 null 허용 타입이 아닙니다. 나는 왜 컴파일러가'.ToList()'가'IEnumerable ' –

+0

을 리턴 하는지를 확신 할 수 없다. .. 도와 줘서 고마워, 형. –

1
public class Main 
{ 
    //Create objects 
    Obj1 someObj = new Obj1(); 
    Obj1 someObj2 = new Obj1(); 
    Obj1 someObj3 = new Obj1(); 

    //You should set some values 

    //Make a list with them  
    List<Obj1> listSomeObj = new List<Obj1>(); 

    listSomeObj.Add(someObj); 
    listSomeObj.Add(someObj2); 
    listSomeObj.Add(someObj3); 
} 
public class Obj1 
{ 
    public int id { get; set; } 
    public string name { get; set; } 
    public int age { get; set; } 
} 

//Here's your function to get that particular value  
public List<int> GetAgeList(List<Obj1> list) 
{ 
    List<int> ageList = new List<int>(); 
    foreach (Obj1 obj in list) 
    { 
     ageList.Add(obj.age); 
    } 
    return ageList; 
} 

이건 그냥 예입니다 (나는 obj1을 가정하고있어 Obj1와 동일한 유형이고 당신은 오타).