مقایسه بین پروپرتی های موجود در 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 برگردوندم که شما بر اساس کلاس خودتون تغییرش بدید.