Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# a组列表<;对象>;进入列表<;列表<;对象>&燃气轮机;_C#_Linq_List - Fatal编程技术网

C# a组列表<;对象>;进入列表<;列表<;对象>&燃气轮机;

C# a组列表<;对象>;进入列表<;列表<;对象>&燃气轮机;,c#,linq,list,C#,Linq,List,我如何使用LINQ对a按Person.Age列出人员并创建新的按年龄列出人员 public class Person { public string Name; public int Age } 一个GroupBy和几个ToList调用应该可以完成这项工作: List<Person> persons = ...; List<List<Person>> byAge = persons .Gr

我如何使用
LINQ
a
Person.Age
列出人员
并创建新的
按年龄列出人员

public class Person
{
    public string Name;
    public int Age
}

一个
GroupBy
和几个
ToList
调用应该可以完成这项工作:

List<Person> persons = ...;
List<List<Person>> byAge = persons
                           .GroupBy(p => p.Age)
                           .Select(ps => ps.ToList())
                           .ToList();
列出人员=。。。;
按年龄列出=人
.GroupBy(p=>p.Age)
.Select(ps=>ps.ToList())
.ToList();

A
GroupBy
和几个
ToList
调用应该可以完成以下任务:

List<Person> persons = ...;
List<List<Person>> byAge = persons
                           .GroupBy(p => p.Age)
                           .Select(ps => ps.ToList())
                           .ToList();
列出人员=。。。;
按年龄列出=人
.GroupBy(p=>p.Age)
.Select(ps=>ps.ToList())
.ToList();

一种可能的解决方案如下所示:

var persons = new List<Person>
{
    new Person { Age = 20 },
    new Person { Age = 30 },
    new Person { Age = 20 },
    new Person { Age = 40 },
    new Person { Age = 50 },
    new Person { Age = 50 },
    new Person { Age = 20 }
};

var result =    from person in persons
                group person by person.Age into g
                select g.ToList();
var listOfListOfPersons = result.ToList();
var result =    from person in persons
                group person by person.Age into g
                select new Persons
                {
                    Entries = g.ToList()
                };
var listOfListOfPersons = result.ToList();
然后像这样填充它:

var persons = new List<Person>
{
    new Person { Age = 20 },
    new Person { Age = 30 },
    new Person { Age = 20 },
    new Person { Age = 40 },
    new Person { Age = 50 },
    new Person { Age = 50 },
    new Person { Age = 20 }
};

var result =    from person in persons
                group person by person.Age into g
                select g.ToList();
var listOfListOfPersons = result.ToList();
var result =    from person in persons
                group person by person.Age into g
                select new Persons
                {
                    Entries = g.ToList()
                };
var listOfListOfPersons = result.ToList();

一种可能的解决方案如下所示:

var persons = new List<Person>
{
    new Person { Age = 20 },
    new Person { Age = 30 },
    new Person { Age = 20 },
    new Person { Age = 40 },
    new Person { Age = 50 },
    new Person { Age = 50 },
    new Person { Age = 20 }
};

var result =    from person in persons
                group person by person.Age into g
                select g.ToList();
var listOfListOfPersons = result.ToList();
var result =    from person in persons
                group person by person.Age into g
                select new Persons
                {
                    Entries = g.ToList()
                };
var listOfListOfPersons = result.ToList();
然后像这样填充它:

var persons = new List<Person>
{
    new Person { Age = 20 },
    new Person { Age = 30 },
    new Person { Age = 20 },
    new Person { Age = 40 },
    new Person { Age = 50 },
    new Person { Age = 50 },
    new Person { Age = 20 }
};

var result =    from person in persons
                group person by person.Age into g
                select g.ToList();
var listOfListOfPersons = result.ToList();
var result =    from person in persons
                group person by person.Age into g
                select new Persons
                {
                    Entries = g.ToList()
                };
var listOfListOfPersons = result.ToList();

你为什么需要列表?@albertjan我这里有更好的选择吗?你为什么需要列表?@albertjan我这里有更好的选择吗?想解释一下什么不起作用吗?这里很好用。你在foreach循环中试过这个吗?想解释一下什么不起作用吗?它在这里工作得很好。你在foreach循环中尝试过这个吗?Ad 1)为什么你需要匿名类型来只保存一个项目?@MarcinJuraszek修复了它-删除了匿名对象。谢谢。广告1)为什么你需要匿名类型才能保存一件物品?@MarcinJuraszek修复了它-删除了匿名对象。谢谢