从对象列表中获取值列表

39

我有一个简单的类:

 private class Category
    {
        public int Id { get; set; }
        public string Value { get; set; }
    }  

这也是这种类型对象的列表:
 List<Category> Categories;

我需要获取类别列表中的ID列表。除了像这样使用for循环,还有更简单的方法吗?

 List<int> list = new List<int>();
    for (int i = 0; i < Categories.Count; i++)
    {
        list.Add(Categories[i].Id);
    }

提前致谢。

3个回答

103

这个表达式将会给你想要的列表:

    Categories.Select(c => c.Id).ToList();

此外,不要忘记

    using System.Linq;

16

请按照以下方式使用。

Categories.Select(c => c.Id).ToList();

||

List<int> list = new List<int>();
foreach (Category item in Categories)
{
    list.Add(item.Id);
}  

1
Categories.Select(c => c.Id).ToList();

提供一个列表的列表 (List<List<Id>>)。
Categories.SelectMany(c => c.Id).ToList();

仅返回Id列表。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接