Quindi, per la maggior parte delle risposte qui, tutti sembrano avere a che fare con ottenere un oggetto semplice di ID fatto dal conteggio del gruppo e la Chiave stessa che è group.Key.
Anche se questo è probabilmente il principale utilizzo di questo. Non ha davvero soddisfatto i miei bisogni.
Per il mio caso, sostanzialmente volevo raggruppare per alcune proprietà dell'oggetto, quindi recuperare un oggetto specifico da quel gruppo. Ecco un codice di esempio.
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; }
}
}
Se si preferisce utilizzare un ciclo foreach (io preferisco lambda come trovo più facile da leggere), ma se lo fai, si poteva fare in questo modo.
Spero che questo aiuti qualcuno. :)
fonte
2018-02-27 08:09:32
È necessario aggiungere del testo che spiega cosa fa questa risposta e perché fornisce una soluzione al problema specifico. I dump di codice sono raramente utilizzati da altre persone. –