从对象列表中获取所有元素

时间:2011-08-02 17:19:05

标签: asp.net-mvc-2 c#-4.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;
}

谢谢!

2 个答案:

答案 0 :(得分:2)

Mannimarco是对的 - 您应该已经提供了一些您尝试过的方法:)有很多方法可以做到这一点。也许您应该查找List(特别是扩展方法部分)并开始学习LINQ

使用通用列表类型的.Select()扩展方法。 (我假设obj1Obj1的类型相同而你刚刚输了一个错字

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

答案 1 :(得分: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;
}

这只是一个例子。