मैंने निम्नलिखित कोशिश की और इसने मुझे हर ट्यूटर को लौटा दिया
List<Tutor>tutorsList = tutors.ToList();
इसके अलावा, मैंने केवल एक विशिष्ट विषय (ट्यूटर-विषय n: n) के साथ ट्यूटर का चयन करने की कोशिश की है
Subject subjectEntity = subjects.Where(s => s.Name == input).FirstOrDefault();
List<Tutor>tutorsList = tutors.Where(t => t.Subjects.Contains(subjectEntity)) .ToList();
नतीजतन, मेरा tutorsList
खाली है, यहां तक कि subjectEntity
सही है (मैंने इसे कंसोल पर मुद्रित किया है)। लेकिन जब मैं हर ट्यूटर को लूप करता हूं और सब्जेक्ट्स को प्रिंट करता हूं, तो सब्जेक्ट वाला ट्यूटर होता है input
.
कोई विचार?
उत्तर:
उत्तर № 1 के लिए 1यदि आपके पास भी आईडी है, तो आप निम्नलिखित कार्य कर सकते हैं:
Subject subjectEntity = subjects
.Where(s => s.Name == input)
.FirstOrDefault();
List<Tutor> tutorsList = tutors
.Where(t => t.Subjects
.Select(x => x.SubjectId)
.Contains(subjectEntity.SubjectId)
)
.ToList();
यदि नहीं, तो आप इसे एक ही क्वेरी में करने का प्रयास कर सकते हैं
List<Tutor> tutorsList = tutors
.Where(t => t.Subjects.Any(x => x.Name == input))
.ToList()
उत्तर № 2 के लिए 1
का उपयोग कर, एक पंक्ति में सरल बनाएं Any
, जब एक आंतरिक संग्रह पर काम कर रहे हैं।
var tutorsList = tutors.Where(t => t.Subjects
.Any(s => s.Name == input)).ToList();
उत्तर № 3 के लिए 1
नीचे आज़माएं
Subject subjectEntity = subjects.Where(s => s.Name == input).FirstOrDefault();
List<Tutor>tutorsList = tutors.Where(t => t.Subjects.Any(x=>x.UniqueField==subjectEntity.UniqueField)).ToList();