مقایسه بین پروپرتی های موجود در 2 تابع در تابع دیگر
سلام .
من میخوام که مقدار BookID , TypeofScore,TermID دو تابعی (BookMostmer , Nomarate) ک نوشتم رو در تابع Average با هم مقایسه کنم . چطور باید این کار رو انجام بدم ؟؟
public float BookMostamar(int bookid, int typescore, int termid, InsertScore model) { var nomre = from a in _db.Tbl_Score where a.StudentNo == model.StudentID && a.BookID == bookid && a.TypeofScore == typescore && a.TermID == termid select a.Score; if (nomre.Any()) { var ave = nomre.Average(); return ave; } else { return 0; } } public List<float> Nomarate(InsertScore model) { var qNomarateEmthanNobatAval = (from a in _db.Tbl_Score where a.StudentNo == model.StudentID && a.TermID == model.Term && a.TypeofScore == model.TypeofScore select a.Score).ToList(); return qNomarateEmthanNobatAval; } public float Average(InsertScore model) { if (model.TypeofScore == 3) { } }
5 پاسخ
ممنون فک کنم به جواب نزدیک شدیم . مشکل اینجاس ک وقتی nomre رو میزنم پراپرتی BookID رو نمیاره . باید چیکارش کنم ؟
سلام دوست عزیز، یک مقدار بیشتر توضیح بدید، متوجه نشدم دقیقاً منظورتون چیه!؟
من میخوام در تابع Average به این صورت مشخص کنم آیا BookID این دو تابع BookMostamar و Nomarate با هم برار هستن یا ن :
public float Average(InsertScore model) { if (model.TypeofScore==3) { foreach (var nomre in Nomarate(model)) { if(nomre.BookID==BookMostamar.BookID) { // Do Something } } } }
در متد بالا BookMostamar یک متد هست ولی به صورت یک متغیر استفاده شده، شما باید متد BookMostamar رو فراخونی کنید:
if(nomre.BookID==BookMostamar(,,,)) { // Do Something }
البته بازهم فکر کنم درست متوجه منظورتون نشدم، مقدار بازگشتی BookMostamar از نوع float هست و BookId ای بر نمیگردونه.
سلام مجدد، مقدار بازگشتی متد Nomarate لیستی از نوع float هست و طبیعیه که خصوصیت BookId رو نداشته باشه. شما باید کد Nomarate رو جوری تغییر بدید که لیستی از شئی مورد نظر رو برگردونه:
public List<Book> Nomarate(InsertScore model) { var qNomarateEmthanNobatAval = (from a in _db.Tbl_Score where a.StudentNo == model.StudentID && a.TermID == model.Term && a.TypeofScore == model.TypeofScore select a).ToList(); return qNomarateEmthanNobatAval; }
فقط من چون اسم کلاستون رو نمیدونستم لیستی از نوع Book برگردوندم که شما بر اساس کلاس خودتون تغییرش بدید.