public HashSet<Student> GetStudents(int studentId)
{
IEnumerable<Student> studentTypes = this.studentTypes .Where(x => (x.studentID== studentId));
if (studentTypes .FirstOrDefault() != null)
{
//return new HashSet<Student>(studentTypes);
return studentTypes.ToHashSet();
}
else
{
return new HashSet<Student>();
}
}
public static class LinqUtilities
{
public static HashSet<T> ToHashSet<T>(this IEnumerable<T> enumerable)
{
HashSet<T> hashSet = new HashSet<T>();
foreach (var en in enumerable)
{
hashSet.Add(en);
}
return hashSet;
}
}
Diese Funktion heißt oft tausend mal sagen, und es gibt 5000 Studenten in der Ergebnismenge. Wie kann ich diese Funktion optimieren? Ich weiß, dass die Konvertierung von IEnumerable
zu HashSet
viel Overhead verursacht. ToHashSet
ist meine Erweiterungsmethode. Diese Funktion ist zu langsam und essen eine Menge Zeit.IEnumerable zu HashSet Umwandlung in LINQ optimieren
Was ToHastSet tun? – Turbot
hinzugefügt zu HashSet ... der zu hashset ist Code aus dem Internet. – abbas