دسته بندی ها
14:57 1400/07/02
آموزش استفاده از متد Except در انتیتی فریم ورک Linq
لطفا راهنمایی بفرمایید چجوری میتونم از متد Except در انتیتی فریم ورک استفاده کنم. ببینید من یک لیست از دانش آموزان یک کلاس دارم. یک لیست هم دانش آموزان حاضر هستن.
حالا میخوام در لیستی که همه دانش آموزان هستن بگم دانش آموزان غایب رو در مشخص کن.
//لیست همه دانش آموزان
var AllStudent = _context.Student_Tbl.ToList();
//لیست دانش آموزان حاضر
var PresentStudent = _context.Student_Tbl.Where(s => s.IsOnline == true).ToList();
//لیست دانش آموزان غایب ولی مشکل داره
var AbsentStudent = AllStudent.Except(PresentStudent);
در دستور بالا لیست کل دانش آموزان رو از لیست دانش آموزان حاضر Except میکنم ولی جواب نمیده. لطفا راهنمایی بفرمایید
ویرایش شده در جمعه 2 مهر 1400 ساعت 14:57:42
مشخصات سوال کننده :
کاربر : hamdola
امتیاز کاربر : 121
رتبه کاربر : 12
به این سوال امتیاز بدهید
0
تعداد بازدید این سوال : 2672
پاسخ دهنده : saedbfd
19:57 1400/07/02
نحوه استفاده از متد Except در انتیتی فریم ورک و Linq
دقت کنید که متد Except یک آرایه در خروجی خواهد داشت بنابراین بهتر است به این صورت استفاده کنید :
var AbsentStudent = AllStudent.Except(PresentStudent).ToArray();
همانطوری که می بینید از متد ToArray استفاده کردیم. با توجه به اینکه کدهایی که شما نوشتید کمی ابهام آمیز هست توضیحات و مثال های بیشتری برای کار با متد Except بهتون میگم.
- فرض کنید که شما لیست همه دانش آموزان یک کلاس رو میخواید داشته باشید. خب به صورت زیر این لیست رو میتونید تهیه کنید :
//لیست همه دانش آموزان
var AllStudent = _context.Student_Tbl.ToList();
- حالا لیست دانش آموزان حاضر در کلاس رو میخواید داشته باشید. خب این لیست رو هم به راحتی با کد بالا میتونید داشته باشید. (مطابق با کد خودتون)
//لیست دانش آموزان حاضر
var PresentStudent = _context.Student_Tbl.Where(s => s.IsOnline == true).ToList();
- در مرحله بعد شما لیست غایبین رو میخواید. یعنی لیست همه دانش آموزان به جز کسانی که حاضر هستند. در این جا چون "به جز" هست می تونیم از متد Except استفاده کنیم. اما دقت کنید برای استفاده از متد Except بهتر هست روی یک فیلد خاص شرط رو اعمال کنید. مثلا لیست ID های همه دانش آموزان رو داشته باشیم و بگیم به جز لیست ID های دانش آموزان حاضر. در واقع کوئری نهایی شما به صورت زیر میشه :
//لیست همه دانش آموزان
var AllStudent = _context.Student_Tbl.ToList();
//لیست دانش آموزان حاضر
var PresentStudent = _context.Student_Tbl.Where(s => s.IsOnline == true).ToList();
//لیست دانش آموزان غایب ولی مشکل داره
var AbsentStudent = AllStudent.Select(s1 => s1.ID).Except(PresentStudent.Select(s2 => s2.ID)).ToArray();
ویرایش شده در جمعه 2 مهر 1400 ساعت 20:11:27
آخرین سوالات ثبت شده
- آموزش استفاده از SignalR در Asp.net Core با مثال عملی
- ادغام چند گزارش استیمول سافت بصورت پی دی اف در یک فایل
- نحوه تغییر استایل کامپوننت select2 چگونه است ؟
- چگونه امنیت پروژه را در Asp.net Core افزایش دهیم ؟
- ارسال پارامتر در دستور window.open جی کویری
- ارسال پارامتر از طریق جاوااسکریپت با کلیک روی تگ a
- خطای 500 زمان اجرا شدن پروژه روی هاست
- کویری نویسی در استیمول سافت جهت فیلتر اطلاعات
- نمایش صفحه در پنجره جدید با کلیک روی لینک (تگ a) در Asp
- افزودن مقادیر به صورت دستی به List دریافت شده از ریپازیتوری
سوالات مرتبط
- مشکل تاریخ شمسی در سی شارپ
- نمایش گزارش stimulsoft روی کلاینت
- تفاوت های سی شارپ 8 با نسخه های قبلی چیه؟
- انتخاب چند سطر دلخواه توسط چک باکس در DataGrid و محاسبه جمع سطرهای انتخاب شده
- نمایش نوتیفکیشن در سی شارپ
- ارسال پارامتر از سی شارپ به استیمول سافت
- عدم نمایش عکس در دیتاگرید ویو در wpf
- Library Animation برای کنترلهای WPF
- رفع خطا در مایگریشن - Specify ON DELETE NO ACTION or ON UPDATE NO ACTION
- مشکل در تغییر مقدار Text کنترل RibbonBar در کامپوننت DevExpress
برای ارسال پاسخ لطفا وارد حساب کاربری خود شوید.
 
ورود