この LINQ クエリでパフォーマンスの問題が発生しています。データはすでに this.students に読み込まれています。GetStudentData 関数を 1000 回呼び出すと、大きなオーバーヘッドが発生します。LINQ をループに変更せずにこれを改善する方法はありますか
public Student GetStudentData()
{
IEnumerable<Students> studentTypes = this.students.Where(x => (x.studentsId == studentId && x.StduentType.Equals(studentType)));
if(studentTypes.Count==0) return new Student() { studentid=studentID};
return (Student)studentTypes.First();
}
これが私の元のバージョンで10000回ループしたときの結果です
元のバージョン: 平均で 5.6 秒 @des の新しいバージョンのコードFirstOrDefault
: 3.6 秒