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

namespace WinningConsoleApp
{
    class Program
    {
        static void Main(string[] args)
        {
            List<User> userList = InitUserList();
            List<Student> studentList = InitStudentList();

            var result1 = from user in userList
                          join student in studentList on user.ID equals student.UserID
                          where user.ID > 1
                          select new { UserID = user.ID, user.Name, student.ClassName };

            foreach (var item in result1)
            {
                Console.WriteLine("UserID:{0}, Name:{1}, ClassName:{2}", item.UserID, item.Name, item.ClassName);
            }

            Console.ReadKey();
        }

        private static List<User> InitUserList()
        {
            return new List<User>() {

                new User{ ID = 1, Name = "name1", Age = 13 },
                new User{ ID = 2, Name = "name2", Age = 14 },
                new User{ ID = 3, Name = "name3", Age = 15 }
            };
        }

        private static List<Student> InitStudentList()
        {
            return new List<Student>() {
                new Student { ID = 1, UserID = 1, ClassName = "className1" },
                new Student { ID = 2, UserID = 2, ClassName = "className1" },
                new Student { ID = 3, UserID = 3, ClassName = "className2" }
            };
        }
    }

    internal class Student
    {
        internal int ID { get; set; }
        internal int UserID { get; set; }
        internal string ClassName { get; set; }

    }
    
    internal class User
    {
        internal int ID { get; set; }
        internal string Name { get; set; }
        internal int Age { get; set; }
    }
}

/*输出
UserID:2, Name:name2, ClassName:className1
UserID:3, Name:name3, ClassName:className2
*/