获取IList中的项目值?

时间:2014-04-21 09:33:26

标签: c#

有没有办法获取IList中的项目值? 它是这样的:

假设我们有IList list和方法private IList getValues(int ID)

然后我们初始化IList list,如:

IList list = getValues(SelectedID)

处理完毕后,IList list现在包含2个元素,每个元素都有自己的集合:

[0]
 {
   GroupName = "test01"
   GroupID = 1
 }

[1]
 {
   GroupName = "test02"
   GroupID = 2
 }

我如何获得第一个元素的GroupName? 我不能像list[0].GroupName那样称呼它,我可以吗?

3 个答案:

答案 0 :(得分:3)

如果您知道对象的类型, 你可以用它来得到你想要的东西。

list.Cast<Group>().ElementAt(0).GroupName

在对象名称中分组。

答案 1 :(得分:2)

尝试以下操作,您需要使用自定义对象创建列表。我在这里创建了一个名为CustomClass的虚拟类,并创建了一个已知类型的列表。

public class CustomClass
    {
        public string GroupName { get; set; }
        public int GroupID { get; set; }
    }

    protected void Page_Load(object sender, EventArgs e)
    {
        List<CustomClass> list = new List<CustomClass>();
        foreach (var x in list) {
            Console.WriteLine(x.GroupName);
        }

    }

答案 2 :(得分:1)

您可以使用FindIndex方法,例如

class MyClass2
{
    public string Name { get; set; }
    public int Age { get; set; }
    public int Type { get; set; }
}


    List<MyClass2> myLists = new List<MyClass2>();
    myLists.Add(new MyClass2() { Age = 1, Name = "Mast", Type = 560 });
    myLists.Add(new MyClass2() { Age = 2, Name = "Oli", Type = 778 });
    myLists.Add(new MyClass2() { Age = 3, Name = "AS", Type = 9458 });
    myLists.Add(new MyClass2() { Age = 4, Name = "ABC", Type = 100 });

    int result1 = myLists.FindIndex(T => T.Type == 9458); //2
    int result2 = myLists.FindIndex(T => T.Name == "Oli"); //1

请参阅http://msdn.microsoft.com/en-us/library/x1xzf2ca.aspx