• 1405/03/30

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

سلام

من برنامه را با دو تا متد انجام دادم یکی برای کنترل اینکه شماره صفحه کنترل شود و درست را نمایش دهد و دیگری داده های آن صفحه را استخراج کند. برای کنترل اینکه داده عدد باشد و حروف از try-catch استفاده کردم و بابت اینکه درست در محدوده صفحات کاربر شماره صفحه انتخاب کند از if و پیام مناسب استفاده کرده.

با تشکر

#region ListData
using practiceLesson83_Paging;

List<Student> students = new List<Student>
        {
            new Student { Id = 1, Name = "Ali", Family = "Mohammadi", Age = 20 },
            new Student { Id = 2, Name = "Sara", Family = "Ahmadi", Age = 21 },
            new Student { Id = 3, Name = "Reza", Family = "Karimi", Age = 19 },
            new Student { Id = 4, Name = "Zahra", Family = "Hashemi", Age = 22 },
            new Student { Id = 5, Name = "Mohammad", Family = "Ghasemi", Age = 20 },
            new Student { Id = 6, Name = "Fatemeh", Family = "Rezaei", Age = 23 },
            new Student { Id = 7, Name = "Hossein", Family = "Nazari", Age = 18 },
            new Student { Id = 8, Name = "Elham", Family = "Moradi", Age = 21 },
            new Student { Id = 9, Name = "Amir", Family = "Ebrahimi", Age = 20 },
            new Student { Id = 10, Name = "Neda", Family = "Jamali", Age = 22 },
            new Student { Id = 11, Name = "Saeed", Family = "Rostami", Age = 19 },
            new Student { Id = 12, Name = "Maryam", Family = "Safari", Age = 24 },
            new Student { Id = 13, Name = "Mehdi", Family = "Akbari", Age = 20 },
            new Student { Id = 14, Name = "Parisa", Family = "Tahmasebi", Age = 21 },
            new Student { Id = 15, Name = "Hamid", Family = "Farhadi", Age = 22 },
            new Student { Id = 16, Name = "Leila", Family = "Khosravi", Age = 19 },
            new Student { Id = 17, Name = "Omid", Family = "Salehi", Age = 23 },
            new Student { Id = 18, Name = "Shima", Family = "Arefi", Age = 20 },
            new Student { Id = 19, Name = "Behnam", Family = "Noori", Age = 21 },
            new Student { Id = 20, Name = "Mahtab", Family = "Jalali", Age = 22 },
            new Student { Id = 21, Name = "Armin", Family = "Zare", Age = 18 },
            new Student { Id = 22, Name = "Ghazal", Family = "Sharifi", Age = 20 },
            new Student { Id = 23, Name = "Kian", Family = "Hosseini", Age = 24 },
            new Student { Id = 24, Name = "Anahita", Family = "Mirzaei", Age = 21 },
            new Student { Id = 25, Name = "Parsa", Family = "Aghaei", Age = 19 },
            new Student { Id = 26, Name = "Setareh", Family = "Mousavi", Age = 22 },
            new Student { Id = 27, Name = "Danial", Family = "Rahimi", Age = 20 },
            new Student { Id = 28, Name = "Haniyeh", Family = "Gholami", Age = 23 },
            new Student { Id = 29, Name = "Erfan", Family = "Abbasi", Age = 18 },
            new Student { Id = 30, Name = "Tannaz", Family = "Fathi", Age = 21 },
            new Student { Id = 31, Name = "Iman", Family = "Babaei", Age = 22 },
            new Student { Id = 32, Name = "Melika", Family = "Amini", Age = 19 },
            new Student { Id = 33, Name = "Navid", Family = "Sadeghi", Age = 24 },
            new Student { Id = 34, Name = "Parnia", Family = "Mohseni", Age = 20 },
            new Student { Id = 35, Name = "Behzad", Family = "Izadi", Age = 21 },
            new Student { Id = 36, Name = "Sanaz", Family = "Ghanbari", Age = 22 },
            new Student { Id = 37, Name = "Arsham", Family = "Heidari", Age = 18 },
            new Student { Id = 38, Name = "Donya", Family = "Fekri", Age = 23 },
            new Student { Id = 39, Name = "Sepehr", Family = "Norouzi", Age = 20 },
            new Student { Id = 40, Name = "Gelayol", Family = "Bagheri", Age = 21 },
            new Student { Id = 41, Name = "Keyvan", Family = "Saberi", Age = 22 },
            new Student { Id = 42, Name = "Bahar", Family = "Rahmatian", Age = 19 },
            new Student { Id = 43, Name = "Pouya", Family = "Mohammadyan", Age = 24 },
            new Student { Id = 44, Name = "Kimia", Family = "Jafari", Age = 20 },
            new Student { Id = 45, Name = "Farid", Family = "Asgari", Age = 21 },
            new Student { Id = 46, Name = "Yasmin", Family = "Kazemi", Age = 22 },
            new Student { Id = 47, Name = "Mahan", Family = "Shahbazi", Age = 18 },
            new Student { Id = 48, Name = "Romina", Family = "Najafi", Age = 23 },
            new Student { Id = 49, Name = "Arya", Family = "Rashidi", Age = 20 },
            new Student { Id = 50, Name = "Niloufar", Family = "Eshaghi", Age = 21 }
        };
#endregion

int pageNumber;
int take = 6;

try
{
    Console.WriteLine($"Page count is: {ControlPage()}");
    Console.Write("Please Enter Page Number For Show Data into this page: ");
    Console.ForegroundColor = ConsoleColor.Yellow;
    pageNumber = Convert.ToInt32(Console.ReadLine());
    Console.ResetColor();

    if (pageNumber > ControlPage() || pageNumber < 1)
    {
        Console.ForegroundColor = ConsoleColor.Red;
        Console.WriteLine($"You must select a page number between 1 and {ControlPage()}.");
        Console.ResetColor();
    }
    else
    {
        GetPageData(pageNumber);
    }
}
catch
{
    Console.ForegroundColor = ConsoleColor.Red;
    Console.WriteLine($"Please just number.");
    Console.ResetColor();
}

void GetPageData(int pageNumber)
{
    var result = (from s in students
                  select s).Skip((pageNumber - 1) * take).Take(take);

    foreach (var s in result)
    {
        Console.WriteLine($"Id: {s.Id}\tName: {s.Name}\t" +
            $"Family: {s.Family.PadRight(10)}\tAge: {s.Age}");
    }
}

int ControlPage()
{
    int pageCount;
    int dataCount = (from s in students
                     select s).Count();
    if (dataCount % take == 0)
    {
        pageCount = dataCount / take;
        return pageCount;
    }
    else
    {
        pageCount = (dataCount / take) + 1;
        return pageCount;
    }
}

عکس خروجی بابت ورود عدد صفر

عکس خروجی بابت ورود عدد صفحه اول

عکس خروجی بابت ورود عدد صفحه وسط داده ها

عکس خروجی بابت ورود عدد صفحه آخر

عکس خروجی بابت ورود عدد صفحه بیش از مقدار صفحات

عکس خروجی بابت ورود متن بجای عدد