Преобразование выражения запроса Linq в лямбда-выражение Linq - PullRequest
1 голос
/ 16 июня 2020

Я написал этот запрос Linq для двух классов студентов и университетов , чтобы извлечь студентов, которые учатся в XXX университете.

Мне нравится использовать лямбда-выражение linq вместо запроса. Я пытался конвертировать, но не смог. Может ли кто-нибудь помочь.

 IEnumerable<Student> Students = from student in this.students
                                               join university in universities
                                               on student.UniversityId equals university.Id
                                               where university.Name == "XXX"
                                               select student;

Теперь, как мне использовать оператор Where?

var students = this.students.Join(universities,
                                  s => s.UniversityId,
                                  u => u.Id,
                                  (std, uni) => std);

1 Ответ

0 голосов
/ 16 июня 2020

Вы можете использовать пример кода ниже.

using System.Collections.Generic;
using System.Linq;

namespace ConsoleApp1
{
    class University
    {
        public int Id { get; set; }
        public string Name { get; set; }
    }

    class Student
    {
        public int Id { get; set; }
        public int UniversityId { get; set; }
    }

    class Program
    {
        static void Main(string[] args)
        {
            IList<University> universities = new List<University>
            {
                new University { Id = 1, Name = "u1" },
                new University { Id = 2, Name = "u2" }
            };
            IList<Student> students = new List<Student>
            {
                new Student { Id = 1, UniversityId = 1 },
                new Student { Id = 2, UniversityId = 1 },
                new Student { Id = 3, UniversityId = 2 },
                new Student { Id = 4, UniversityId = 2 }
            };
            IEnumerable<Student> stus = universities
                .Join(students, university => university.Id, student => student.UniversityId, (university, student) => new { university, student })
                .Where(j => j.university.Name == "u2")
                .Select(j => j.student);
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...