Por lo tanto, para la mayoría de las respuestas aquí, todo el mundo parece estar tratando con obtener un objeto simple de Id hecho a partir del recuento del grupo, y la clave misma que es group.Key.
Aunque ese es probablemente el uso principal de esto. Realmente no satisfizo mis necesidades.
Para mi propio caso, básicamente quería agrupar por alguna propiedad de objeto, luego buscar un objeto específico de ese grupo. Aquí hay un código de muestra.
using System;
using System.Collections.Generic;
using System.Linq;
public class Program
{
public static void Main()
{
Console.WriteLine("Hello World");
var response = new List<ResponseClass>();
var listOfStudents = new List<Student>();
// Insert some objects into listOfStudents object.
listOfStudents.GroupBy(g => g.Class).ToList()
.ForEach(g => response.Add(g.OrderByDescending(s => s.CreatedOn).Select(a =>
new ResponseClass
{
SName = a.StudentName,
SAge = a.Age,
SClass = a.Class,
SCreatedOn = a.CreatedOn,
RandomProperty = Guid.NewGuid().ToString()
})
.First()));
Console.WriteLine("This compiles and should work just fine");
}
class Student
{
public string StudentName { get; set; }
public int Age { get; set; }
public string Class { get; set; }
public DateTime CreatedOn { get; set; }
}
class ResponseClass
{
public string SName { get; set; }
public int SAge { get; set; }
public string SClass { get; set; }
public DateTime SCreatedOn { get; set; }
public string RandomProperty { get; set; }
}
}
Si prefiere utilizar un bucle foreach (yo prefiero lambda como me resulta más fácil de leer), pero si lo hace, se podría hacer como tal.
Espero que esto ayude a alguien. :)
Debe agregar algo de texto que explique qué hace esta respuesta y por qué proporciona una solución al problema específico. Los volcados de código rara vez son útiles para otras personas. –