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;
}
}
この関数は、1000回と言われ、結果セットには5000人の生徒がいます。 この機能を最適化するにはどうすればいいですか... IEnumerable
からHashSet
への変換が多くのオーバーヘッドを引き起こしていることがわかりました。 ToHashSet
は私の拡張メソッドです。 この機能は、多くの時間を遅くして食べることです。LINQでIEnumerableからHashSetへの変換を最適化する
ToHastSetの機能は何ですか? – Turbot
がハッシュセットに追加されました...ハッシュセットはインターネットのコードです。 – abbas