LINQ Select distinct from a List?

前端 未结 3 730
不知归路
不知归路 2021-01-18 14:41

I have the following list:


    class Person
    {
        public String Name { get; set; }
        public String LastName { get; set; }
        public Stri         


        
相关标签:
3条回答
  • 2021-01-18 14:55

    In addition to Darin Dimitrov's answer, here is the same in query syntax:

    var groupByCityQuery = from person in personList 
                           group person by person.City into grouping 
                           select grouping;
    
    0 讨论(0)
  • 2021-01-18 15:06

    Judging by this comment: No, I wan't a list containing all the Persons that contains 1 as a city and another that contains 2 as a city...

    We can do something like this:

    var city1People = personList.Where(x => x.city == "1").ToList();
    var city2People = personList.Where(x => x.city == "2").ToList();
    

    if this is something more dynamic, like you're going to have N cities and want an individual list of people per city, you're going to need to return a collection of lists.

    0 讨论(0)
  • 2021-01-18 15:14

    You could use LINQ to group the persons list by city:

    var groupedPersons = personList.GroupBy(x => x.City);
    foreach (var g in groupedPersons)
    {
        string city = g.Key;
        Console.WriteLine(city);
        foreach (var person in g)
        {
            Console.WriteLine("{0} {1}", person.Name, person.LastName);
        }
    }
    
    0 讨论(0)
提交回复
热议问题