با سلام
من یک بار برنامه را ارسال کردم و پس از دیدن برنامه های نوشته شده توسط سایر دانشجویان من هم از ابتکار بعضی ها الگو گرفته و برنامه خودم رو بهبود دادم.
با تشکر از استاد و تمامی دانشجویان که با مرور کدهای آنها اطلاعات بیشتری می آموزیم.
#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;
GoToPage();
void GoToPage()
{
try
{
Console.WriteLine($"\nPage count is: {LastPage()}");
Console.Write("\nPlease Enter Page Number For Show Data into this page: ");
Console.ForegroundColor = ConsoleColor.Yellow;
pageNumber = Convert.ToInt32(Console.ReadLine());
Console.ResetColor();
if (pageNumber > LastPage() || pageNumber < 1)
{
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("++++++++++++++++++++++++++++++++++++++++++");
Console.WriteLine($"You must select a page number between 1 and {LastPage()}.");
Console.WriteLine("++++++++++++++++++++++++++++++++++++++++++");
Console.ResetColor();
GoToPage();
}
else
{
GetPageData(pageNumber);
}
}
catch
{
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("++++++++++++++++++++++++++++++++++++++++++");
Console.WriteLine($"Please just number.");
Console.WriteLine("++++++++++++++++++++++++++++++++++++++++++");
Console.ResetColor();
GoToPage();
}
}
void GetPageData(int pageNumber)
{
var result = (from s in students
select s).Skip((pageNumber - 1) * take).Take(take);
Console.ForegroundColor = ConsoleColor.Green;
Console.WriteLine("\n++++++++++++++++++++++++++++++++++++++++++");
Console.WriteLine($"Your select Page {pageNumber} from {LastPage()} pages");
Console.WriteLine("++++++++++++++++++++++++++++++++++++++++++");
Console.ForegroundColor = ConsoleColor.Cyan;
Console.WriteLine("\n┌─────┬──────────┬─────────────────┬─────┐");
Console.WriteLine("|ID | Name | Family | Age |");
Console.WriteLine("├─────┼──────────┼─────────────────┼─────┤");
foreach (var s in result)
{
Console.WriteLine($"| {s.Id,-2} | {s.Name,-8} | {s.Family,-15} | {s.Age,-3} |");
}
Console.WriteLine("└─────┴──────────┴─────────────────┴─────┘");
Console.ResetColor();
Navigation();
}
int LastPage()
{
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;
}
}
void GoToNextPage()
{
if (pageNumber < LastPage())
{
pageNumber++;
}
GetPageData(pageNumber);
}
void GoToPreviousePage()
{
if (pageNumber != 1)
{
pageNumber--;
}
GetPageData(pageNumber);
}
void GoToFirstPage()
{
pageNumber = 1;
GetPageData(pageNumber);
}
void GoToLastPage()
{
pageNumber = LastPage();
GetPageData(pageNumber);
}
void Navigation()
{
Console.WriteLine("\n═══════════════════════════════════════");
Console.WriteLine("Navigation Menu:");
Console.WriteLine("Please choose one of the options.");
Console.WriteLine("\n\t[N] Next Page\t\t[P] Previous Page");
Console.WriteLine("\t[F] First Page\t\t[L] Last Page");
Console.WriteLine("\t[G] Go to Page\t\t[E] Exit");
Console.WriteLine("═══════════════════════════════════════");
Console.Write("\n Your choice: ");
string choice = Console.ReadLine().ToLower();
switch (choice)
{
case "n":
GoToNextPage();
break;
case "p":
GoToPreviousePage();
break;
case "f":
GoToFirstPage();
break;
case "l":
GoToLastPage();
break;
case "g":
GoToPage();
break;
case "e":
break;
default:
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("\nYou must select one of the navigation options.");
Console.ResetColor();
Navigation();
break;
}
}داده ورودی با عدد کمتر از صفحات

اولین صفحه

صفحات میانی

صفحه آخر

داده ورودی بیشتر از صفحات

ورودی غیر عددی

انتخاب آپشن صفحه بعد

انتخاب آپشن صفحه قبل

انتخاب آپشن صفحه آخر

انتخاب آپشن صفحه اول

انتخاب آپشن صفحه دلخواه
