This Überlastung der GroupBy
wird IEnumerable<IGrouping<TKey, TSource>>
wie aus der source code angezeigt.
Sie müssen nur Ihr mit dem Select()
enumerable projizieren und natürlich Sie ToList()
am Ende rufen muss die Abfrage auszuführen und eine Liste zu erstellen:
var res = classAttendanceByCriteria.OrderBy(x => x.Lecture.Id)
.GroupBy(x => new { x.Lecture, x.Teacher })
.Select(x => new {x.Key.Lecture, x.Key.Teacher})
.ToList();
Aber der obige Code erstellt eine Liste der anonyme Typen. Wenn Sie vorhaben, die obige Aussage aus dem Verfahren zurück, dann müssen Sie verwenden oder ein benutzerdefiniertes Objekt und gibt die Liste der diese zu erstellen:
public class LectureTeacher
{
public string Lecture { get; set; }
public string Teacher { get; set; }
}
public List<LectureTeacher> GetDogsWithBreedNames()
{
var res = classAttendanceByCriteria.OrderBy(x => x.Lecture.Id)
.GroupBy(x => new { x.Lecture, x.Teacher })
.Select(x => new LectureTeacher {Lecture = x.Key.Lecture, Teacher = x.Key.Teacher})
.ToList();
return res;
}
By the way,GroupBy
haben mehrere andere Überlastungen, die Sie Ergebnisauswahl und es wird wieder IEnumerable
Sie angeben können:
myList.OrderBy(x => x.Lecture.Id)
.GroupBy(x => new { x.Lecture, x.Teacher } //key selector
key => new LectureTeacher // result selector
{
Lecture = key.Lecture,
Teacher = key.Teacher
})
.ToList();