private static void PrintStudents(Student[] students) { foreach (var item in students) { Console.WriteLine(item); } }
static void Main(string[] args) { Student[] groups = new Student[] { new Student("Celine", "Dion",14), new Student("Celine", "Youknowwho",22), new Student("Who", "Doctor",29) }; Console.WriteLine("The entered names are Celine Dion(age 14), Celine Youknowwho(age 22), Who Doctor(age 29)"); Console.WriteLine("Result:"); FindStudents(groups); Console.WriteLine("Result for age:"); AgeRange(groups); Console.WriteLine("Sorting using lambda expressions:"); var sortedLambda = groups.OrderByDescending(temp => temp.FirstName).ThenByDescending(temp => temp.LastName); foreach (var a in sortedLambda) { Console.WriteLine(a.FirstName +" " + a.LastName); } Console.WriteLine("Sorting using LINQ:"); var sortedLINQ = from studs in groups orderby studs.FirstName descending, studs.LastName descending select studs; foreach (var stud in sortedLINQ) { Console.WriteLine(stud.FirstName + " " + stud.LastName); } }
public static IEnumerable<Student> FirstNameBeforeLast(Student[] students) { var result = from student in students where student.FirstName.CompareTo(student.LastName) < 0 select student; return result; }
// Task 4 "Age range" public static Student[] FilterByAge(Student[] students) { var filters = from st in students where st.Age > 17 && st.Age < 25 select st; return filters.ToArray(); }
// Task 3 "First before last" public static Student[] FilterStudentsByName(Student[] students) { var items = from st in students where st.FirstName.CompareTo(st.LastName) < 0 select st; return items.ToArray(); }
public static void FindStudents(Student[] array) { var group = from stud in array where stud.FirstName[0] < stud.LastName[0] select stud; foreach( var stud in group) { Console.WriteLine(stud.FirstName + " " + stud.LastName); } }
public static void AgeRange(Student[] array) { var group = from stud in array where stud.Age>=18 && stud.Age<=24 select stud; foreach (var stud in group) { Console.WriteLine(stud.FirstName + " " + stud.LastName); } }
static void Main() { Student[] studentsArray = new Student[] { new Student("Gosho", "Toshev"), new Student("Dimitar", "Vasilev"), new Student("Vasil", "Dimitrov"), new Student("Jeliazko", "Momchilov")}; var FindStdUnderCondition = from student in studentsArray where student.FirstName.CompareTo(student.LastName) < 0 select student; foreach (var student in FindStdUnderCondition) { Console.WriteLine(student.FirstName + " " + student.LastName); } }
static void Main(string[] args) { // Problem 3: Write a method that from a given array of //students finds all students whose first name is before its last name alphabetically. Console.WriteLine("Students whose first name is before their last alphabetically:\n"); Student[] students = new Student[] { new Student("Andrey", "Mitev"), new Student("Mile", "Andreev") }; Student[] filtered = FilterStudentsByName(students); PrintStudents(filtered); // Problem 4: Write a LINQ query that finds the first name and last name of all students with age between 18 and 24. students = new Student[] { new Student("Ivan", "Peshev", 22), new Student("Dimitar", "Dimitrov", 65), new Student("Ivan", "Toshev", 13), new Student("Atanas", "Mladenov", 18), new Student("Kaloyan", "Mladenov", 28) }; filtered = FilterByAge(students); Console.WriteLine("\nFiltered by age:"); PrintStudents(filtered); // Problem 5: Using the extension methods OrderBy() and ThenBy() with // lambda expressions sort the students by first name and last name in descending order. Console.WriteLine("\nSorted students:"); students = students.OrderByDescending(x => x.FirstName).ThenByDescending(x => x.LastName).ToArray(); PrintStudents(students); // Same thing done with LINQ var sorted = from student in students orderby student.FirstName descending, student.LastName descending select student; Console.WriteLine("\nSorted with LINQ:"); PrintStudents(sorted.ToArray()); }
public static void Main() { Student[] students = new Student[] { new Student("Zornitsa", "Ivanova", 26), new Student("Ivan", "Simeonov", 34), new Student("Albena", "Angelova", 20), new Student("Daniel", "Popov", 22), new Student("Stefan", "Nikolov", 29), new Student("Petar", "Georgiev", 28), new Student("Maria", "Petrova", 36), }; //Students before sorting foreach (var student in students) { Console.WriteLine(student); } Console.WriteLine("\n3. First before last:\n"); var sortedStudents = FirstNameBeforeLast(students); //3. First before last foreach (var student in sortedStudents) { Console.WriteLine(student); } Console.WriteLine("\n4. Fist name + Last name, age: 18-24:\n"); //4. Age range var ageRange = from student in students where student.Age >= 18 && student.Age <= 24 select student.FirstName + " " + student.LastName; foreach (var student in ageRange) { Console.WriteLine(student); } Console.WriteLine("\n5. Order students\n"); //5. Order students var studentInDescendingOrder = students .OrderByDescending(st => st.FirstName) .ThenByDescending(st => st.LastName); foreach (var student in studentInDescendingOrder) { Console.WriteLine(student); } //Using LINQ var studentInDescendingOrderLINQ = from student in students orderby student.FirstName descending, student.LastName descending select student; Console.WriteLine(); foreach (var student in studentInDescendingOrderLINQ) { Console.WriteLine(student); } }
static void Main() { var students = new Student[] { new Student("Ivan", "Petkov", 15), new Student("Angel", "Georgiev", 25), new Student("Pesho", "Atanasov", 23), new Student("Stoqn", "Dimitrov", 19), new Student("Angel", "Ivanov", 33), }; //Problem 3. First before last //Write a method that from a given array of students finds all students whose first name is before its last name alphabetically. //Use LINQ query operators. var filteredStudents = from student in students where student.FirstName.CompareTo(student.LastName) < 0 select student; Console.WriteLine("Students whose first name is before its last name:"); foreach (var student in filteredStudents) { Console.WriteLine(student); } //Problem 4. Age range //Write a LINQ query that finds the first name and last name of all students with age between 18 and 24. var studentsAgeRange = from student in students where student.Age >= 18 && student.Age <= 24 select student; Console.WriteLine("\nStudents with age between 18 and 24:"); foreach (var student in studentsAgeRange) { Console.WriteLine(student.FirstName + " " + student.LastName); } //Problem 5. Order students //Using the extension methods OrderBy() and ThenBy() with lambda expressions sort the students //by first name and last name in descending order. //Rewrite the same with LINQ. Console.WriteLine("\nOrdered students:"); //using extension methods var sortedStudentsExt = students.OrderByDescending(st => st.FirstName).ThenByDescending(st => st.LastName); Console.WriteLine("Using extension methods."); foreach (var student in sortedStudentsExt) { Console.WriteLine(student); } //using LINQ query var sortedStudentsLinqQuery = from student in students orderby student.FirstName descending, student.LastName descending select student; Console.WriteLine("\nUsing LINQ query."); foreach (var student in sortedStudentsExt) { Console.WriteLine(student); } }