• 1405/03/26

تمرین جلسه 83 - صفحه بندی با LINQ :

سلام و خسته نباشید استاد 

من اینجا از Console.Clear استفاده کردم و اگه باگ یا مشکلی داره بهم بگین 

Class Student : 

namespace Test
{
    public class Student
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public string Family { get; set; }
        public int Age { get; set; }
    }
}

Program :

#region List
using System.Collections.Generic;
using System.Threading.Channels;
using Test;

List<Student> DataBase = new List<Student>
        {
            new Student { Id = 1, Name = "Ali", Family = "Ahmadi", Age = 18 },
            new Student { Id = 2, Name = "Mohammad", Family = "Mohammadi", Age = 20 },
            new Student { Id = 3, Name = "Reza", Family = "Hosseini", Age = 15 },
            new Student { Id = 4, Name = "Hossein", Family = "Rezaei", Age = 22 },
            new Student { Id = 5, Name = "Mehdi", Family = "Karimi", Age = 19 },
            new Student { Id = 6, Name = "Amir", Family = "Mousavi", Age = 17 },
            new Student { Id = 7, Name = "Nima", Family = "Sadeghi", Age = 25 },
            new Student { Id = 8, Name = "Arash", Family = "Alavi", Age = 14 },
            new Student { Id = 9, Name = "Kourosh", Family = "Moradi", Age = 28 },
            new Student { Id = 10, Name = "Dariush", Family = "Noori", Age = 30 },
            new Student { Id = 11, Name = "Fatemeh", Family = "Jafari", Age = 16 },
            new Student { Id = 12, Name = "Zahra", Family = "Kazemi", Age = 21 },
            new Student { Id = 13, Name = "Maryam", Family = "Rahimi", Age = 24 },
            new Student { Id = 14, Name = "Sara", Family = "Sharifi", Age = 19 },
            new Student { Id = 15, Name = "Negar", Family = "Bagheri", Age = 27 },
            new Student { Id = 16, Name = "Nazanin", Family = "Taheri", Age = 15 },
            new Student { Id = 17, Name = "Shima", Family = "Najafi", Age = 23 },
            new Student { Id = 18, Name = "Elham", Family = "Ghasemi", Age = 20 },
            new Student { Id = 19, Name = "Mina", Family = "Akbari", Age = 18 },
            new Student { Id = 20, Name = "Leila", Family = "Mirzaei", Age = 26 },
            new Student { Id = 21, Name = "Samira", Family = "Heidari", Age = 17 },
            new Student { Id = 22, Name = "Parisa", Family = "Sultani", Age = 29 },
            new Student { Id = 23, Name = "Ronak", Family = "Zarei", Age = 14 },
            new Student { Id = 24, Name = "Golnaz", Family = "Keshavarz", Age = 22 },
            new Student { Id = 25, Name = "Bahareh", Family = "Tehrani", Age = 19 },
            new Student { Id = 26, Name = "Nasrin", Family = "Esfahani", Age = 25 },
            new Student { Id = 27, Name = "Shadi", Family = "Shirazi", Age = 16 },
            new Student { Id = 28, Name = "Mahsa", Family = "Mashhadi", Age = 21 },
            new Student { Id = 29, Name = "Yasaman", Family = "Yazdi", Age = 28 },
            new Student { Id = 30, Name = "Atena", Family = "Kashani", Age = 15 },
            new Student { Id = 31, Name = "Kian", Family = "Ghaffari", Age = 24 },
            new Student { Id = 32, Name = "Arad", Family = "Ansari", Age = 18 },
            new Student { Id = 33, Name = "Bardia", Family = "Vafaei", Age = 20 },
            new Student { Id = 34, Name = "Shahin", Family = "Vafadar", Age = 27 },
            new Student { Id = 35, Name = "Ashkan", Family = "Parsaei", Age = 14 },
            new Student { Id = 36, Name = "Pouya", Family = "Radmanesh", Age = 23 },
            new Student { Id = 37, Name = "Ramin", Family = "Mehrali", Age = 19 },
            new Student { Id = 38, Name = "Saeed", Family = "Doosti", Age = 26 },
            new Student { Id = 39, Name = "Majid", Family = "Pourmohammad", Age = 17 },
            new Student { Id = 40, Name = "Javad", Family = "ZadehHossein", Age = 22 },
            new Student { Id = 41, Name = "Saman", Family = "Farahmand", Age = 29 },
            new Student { Id = 42, Name = "Kamran", Family = "Niaei", Age = 15 },
            new Student { Id = 43, Name = "Bahram", Family = "Monshi", Age = 21 },
            new Student { Id = 44, Name = "Farhad", Family = "Pourmand", Age = 25 },
            new Student { Id = 45, Name = "Shahab", Family = "Bakhshi", Age = 18 },
            new Student { Id = 46, Name = "Parsa", Family = "Ferdos", Age = 24 },
            new Student { Id = 47, Name = "Sina", Family = "Kari", Age = 16 },
            new Student { Id = 48, Name = "Omid", Family = "Gohari", Age = 20 },
            new Student { Id = 49, Name = "Navid", Family = "Nezhadi", Age = 28 },
            new Student { Id = 50, Name = "Hamid", Family = "Zadgah", Age = 14 },
            new Student { Id = 51, Name = "Ali", Family = "Mohammadi", Age = 19 },
            new Student { Id = 52, Name = "Mohammad", Family = "Hosseini", Age = 23 },
            new Student { Id = 53, Name = "Reza", Family = "Karimi", Age = 17 },
            new Student { Id = 54, Name = "Hossein", Family = "Mousavi", Age = 26 },
            new Student { Id = 55, Name = "Mehdi", Family = "Sadeghi", Age = 15 },
            new Student { Id = 56, Name = "Amir", Family = "Alavi", Age = 21 },
            new Student { Id = 57, Name = "Nima", Family = "Moradi", Age = 29 },
            new Student { Id = 58, Name = "Arash", Family = "Noori", Age = 18 },
            new Student { Id = 59, Name = "Kourosh", Family = "Jafari", Age = 24 },
            new Student { Id = 60, Name = "Dariush", Family = "Kazemi", Age = 16 },
            new Student { Id = 61, Name = "Fatemeh", Family = "Rahimi", Age = 20 },
            new Student { Id = 62, Name = "Zahra", Family = "Sharifi", Age = 27 },
            new Student { Id = 63, Name = "Maryam", Family = "Bagheri", Age = 14 },
            new Student { Id = 64, Name = "Sara", Family = "Taheri", Age = 22 },
            new Student { Id = 65, Name = "Negar", Family = "Najafi", Age = 19 },
            new Student { Id = 66, Name = "Nazanin", Family = "Ghasemi", Age = 25 },
            new Student { Id = 67, Name = "Shima", Family = "Akbari", Age = 17 },
            new Student { Id = 68, Name = "Elham", Family = "Mirzaei", Age = 23 },
            new Student { Id = 69, Name = "Mina", Family = "Heidari", Age = 15 },
            new Student { Id = 70, Name = "Leila", Family = "Sultani", Age = 28 },
            new Student { Id = 71, Name = "Samira", Family = "Zarei", Age = 21 },
            new Student { Id = 72, Name = "Parisa", Family = "Keshavarz", Age = 18 },
            new Student { Id = 73, Name = "Ronak", Family = "Tehrani", Age = 26 },
            new Student { Id = 74, Name = "Golnaz", Family = "Esfahani", Age = 14 },
            new Student { Id = 75, Name = "Bahareh", Family = "Shirazi", Age = 20 },
            new Student { Id = 76, Name = "Nasrin", Family = "Mashhadi", Age = 24 },
            new Student { Id = 77, Name = "Shadi", Family = "Yazdi", Age = 19 },
            new Student { Id = 78, Name = "Mahsa", Family = "Kashani", Age = 27 },
            new Student { Id = 79, Name = "Yasaman", Family = "Ghaffari", Age = 16 },
            new Student { Id = 80, Name = "Atena", Family = "Ansari", Age = 22 },
            new Student { Id = 81, Name = "Kian", Family = "VafaeiPour", Age = 15 },
            new Student { Id = 82, Name = "Arad", Family = "Vafadar", Age = 29 },
            new Student { Id = 83, Name = "Bardia", Family = "Parsaei", Age = 18 },
            new Student { Id = 84, Name = "Shahin", Family = "Radmanesh", Age = 25 },
            new Student { Id = 85, Name = "Ashkan", Family = "Mehrali", Age = 14 },
            new Student { Id = 86, Name = "Pouya", Family = "Doosti", Age = 21 },
            new Student { Id = 87, Name = "Ramin", Family = "Pourmohammad", Age = 23 },
            new Student { Id = 88, Name = "Saeed", Family = "ZadehHossein", Age = 17 },
            new Student { Id = 89, Name = "Majid", Family = "Farahmand", Age = 28 },
            new Student { Id = 90, Name = "Javad", Family = "Niaei", Age = 19 },
        };
#endregion

int numberList = (from s in DataBase
                  select s).Count();
const int count = 8;
int pageNumber = (numberList / count) + 1;
while (true)
{
    try
    {
        Console.WriteLine($"Total List Number : {numberList}");
        Console.WriteLine($"Page Count Is : {pageNumber}");
        Console.Write($"Please Enter Page Number [1 to {pageNumber}] : ");
        int number = int.Parse(Console.ReadLine());
        if (number > 0 && number <= pageNumber)
        {
            var list = (from s in DataBase
                        select s).Skip(count * (number - 1)).Take(count).ToList();
            foreach (var item in list)
            {
                Console.WriteLine($"ID : {item.Id:d2} | Name : {item.Name} Family : {item.Family} Age : {item.Age}");
            }
        }
        else
        {
            Console.Clear();
            Console.WriteLine("Not Found !");
            Console.WriteLine("==================================");
            continue;
        }
    }
    catch
    {
        Console.Clear();
        Console.WriteLine("Please Enter Only Numbers !");
        Console.WriteLine("==================================");
        continue;
    }
    Console.Write("\nDo You Want To Search Again ? \n[Y / N] : ");
    string isAgain = Console.ReadLine().ToLower();
    if( isAgain != "y")
    {
        break;
    }
    else
    {
        Console.Clear();
    }
}