Advertisement
AlexanderStefanov

Untitled

Oct 6th, 2015
149
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 7.56 KB | None | 0 0
  1. using System;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7.  
  8. namespace _01.Class_Student
  9. {
  10.     class Problems1to12
  11.     {
  12.      
  13.         static void Main(string[] args)
  14.         {
  15.             //Problem 1.    Class Student
  16.             var students = new List<Student>
  17.         {
  18.             new Student("Ivan", "Atanaschev",30,870020915,"+359 2 1122334455","kosta@abv.bg",new List<int> {2, 4, 5, 6},1,"ATHENS"),
  19.             new Student("Victor", "Benov",30,881020915,"02 96969696","rotkiv@abv.bg",new List<int> {5, 6, 5, 6},1, "SOFIA"),
  20.             new Student("Ivan", "Agitanski",17,891020915,"+359 474747474","john.p@abv.bg",new List<int> {6, 2, 6, 2},2,"VIENNA"),
  21.             new Student("Nasko", "Rusev",24,894020915,"+454564643","ata.nas@gmail.com",new List<int> {2, 6, 6, 6},2, "VIENNA"),
  22.             new Student("Lili", "Baba",21,894030914,"+359 979695959","lilski@yahoo.com",new List<int> {2, 6, 6, 6},1, "ATHENS"),
  23.             new Student("Salami", "Salambo",25,894050915,"+359 4463924957","salami@abv.bg",new List<int> {4, 2, 6, 6},2,"SOFIA"),
  24.             new Student("Resto", "Pesto",22,894056914,"+359 65986857","pesto@hotmail.com",new List<int> {6, 6, 6, 6},3,"ROME"),
  25.         };
  26.  
  27.             Console.WriteLine("Problem 2.   Students by Group");
  28.             var groupTwoStudents =
  29.                 from st in students
  30.                 where st.GroupNumber == 2
  31.                 orderby st.FirstName
  32.                 select st;
  33.             var group2 = students.Where(st => st.GroupNumber == 2).OrderBy(st => st.FirstName);
  34.             PrintCollection(group2);
  35.             Console.WriteLine();
  36.  
  37.             Console.WriteLine("Problem 3.   Students by First and Last Name");
  38.             var studentsFirstAndLastName =
  39.                from st in students
  40.                where st.FirstName.CompareTo(st.LastName) < 0
  41.                select st;
  42.             var studentsNameOrder = students.Where(x => x.FirstName.CompareTo(x.LastName) < 0);
  43.             PrintCollection(studentsNameOrder);
  44.             Console.WriteLine();
  45.  
  46.             Console.WriteLine("Problem 4.   Students by Age");
  47.             var studentsByAge =
  48.                 from st in students
  49.                 where (st.Age >= 18 && st.Age <= 24)
  50.                 select new { st.FirstName, st.LastName, st.Age };
  51.             var studentAgeAnnonymos =
  52.                 students.Where(st => st.Age >= 18 && st.Age <= 24).Select(st => new { st.FirstName, st.LastName, st.Age });
  53.             PrintCollection(studentAgeAnnonymos);
  54.             Console.WriteLine();
  55.  
  56.             Console.WriteLine("Problem 5.   Sort Students");
  57.             var sortStudentsLINQquery =
  58.                 from st in students
  59.                 orderby st.FirstName descending, st.LastName descending
  60.                 select st;
  61.             var studentsLinqExtMethods = students.OrderByDescending(x => x.FirstName).ThenByDescending(x => x.LastName);
  62.             PrintCollection(studentsLinqExtMethods);
  63.             Console.WriteLine();
  64.  
  65.             Console.WriteLine("Problem 6.   Filter Students by Email Domain");
  66.             var studentsByEmails =
  67.                from st in students
  68.                where st.Email.Contains("@abv.bg")
  69.                select st;
  70.             var studentsABV = students.Where(st => st.Email.Contains("abv.bg")).Select(st => new { st.FirstName, st.LastName, st.Email });
  71.             PrintCollection(studentsABV);
  72.             Console.WriteLine();
  73.  
  74.             Console.WriteLine("Problem 7.   Filter Students by Phone");
  75.             var studentsPhoneSofia =
  76.                 from st in students
  77.                 where (st.Phone.StartsWith("02") || st.Phone.StartsWith("+3592") || st.Phone.StartsWith("+359 2"))
  78.                 select st;
  79.             var phoneSofia =
  80.                 students.Where(
  81.                     st => st.Phone.StartsWith("02") || st.Phone.StartsWith("+3592") || st.Phone.StartsWith("+359 2"));
  82.             PrintCollection(phoneSofia);
  83.             Console.WriteLine();
  84.  
  85.             Console.WriteLine("Problem 8.   Excellent Students");
  86.             var excellentStudents =
  87.                from st in students
  88.                where (st.Marks.Max() == 6)
  89.                select new { Fullname = string.Join(" ", st.FirstName, st.LastName), Marks = string.Join(" ", st.Marks) };
  90.             var studentsHas6 =
  91.                 students.Where(st => st.Marks.Max() == 6).Select(st => new { Fullname = string.Join(" ", st.FirstName, st.LastName), Marks = string.Join(" ", st.Marks) });
  92.             PrintCollection(studentsHas6);
  93.             Console.WriteLine();
  94.  
  95.             Console.WriteLine("Problem 9.   Weak Students");
  96.             var weakStudents = students.Where(st => st.Marks.Count(x => x == 2) == 2);
  97.             PrintCollection(weakStudents);
  98.             Console.WriteLine();
  99.  
  100.             Console.WriteLine("Problem 10.  Students Enrolled in 2014");
  101.             var enroledIn2014 =
  102.                 from st in students
  103.                 where (st.FacultyNumber % 100 == 14)
  104.                 select st;
  105.             var joned2014 =
  106.                 students.Where(st => st.FacultyNumber % 100 == 14)
  107.                     .Select(st => new { st.FirstName, st.LastName, st.FacultyNumber });
  108.             PrintCollection(joned2014);
  109.             Console.WriteLine();
  110.  
  111.             Console.WriteLine("Problem 11.  * Students by Groups");
  112.             var studentsByGroups =
  113.                 from st in students
  114.                 group st by st.GroupName;
  115.             var studentsGropuNames = students.Select(st => new { st.FirstName, st.LastName, st.GroupName }).GroupBy(st => st.GroupName);
  116.             foreach (var group in studentsGropuNames)
  117.             {
  118.                 Console.WriteLine(group.Key);
  119.                 PrintCollection(group);
  120.             }
  121.             Console.WriteLine();
  122.  
  123.             Console.WriteLine("Problem 12.  * Students Joined to Specialties");
  124.             var specialitiesFacNums = new List<StudentSpecialties>
  125.                                     {
  126.                                         new StudentSpecialties("Web Developer",900020915),
  127.                                         new StudentSpecialties("Web Developer",901020915),
  128.                                         new StudentSpecialties("PHP Developer",921020915),
  129.                                         new StudentSpecialties("PHP Developer",924020915),
  130.                                         new StudentSpecialties("QA Engineer",924030914),
  131.                                         new StudentSpecialties("QA Engineer",924050915),
  132.                                         new StudentSpecialties("Web Developer", 024056914)
  133.                                     };
  134.             var jonedData =
  135.                 from student in students
  136.                 orderby student.FirstName ascending, student.LastName ascending
  137.                 join speciality in specialitiesFacNums on student.FacultyNumber equals speciality.FacultyNumber
  138.                 select new { student.FirstName, student.LastName, student.FacultyNumber, speciality.Speciality };
  139.             var jonedDataLinqExtMtd =
  140.                 students.OrderBy(st => st.FirstName)
  141.                     .ThenBy(st => st.LastName)
  142.                     .Join(specialitiesFacNums, st => st.FacultyNumber, sp => sp.FacultyNumber,
  143.                         (student, speciality) =>
  144.                             new { student.FirstName, student.LastName, student.FacultyNumber, speciality.Speciality });
  145.             PrintCollection(jonedDataLinqExtMtd);
  146.             Console.WriteLine();
  147.         }
  148.  
  149.         static void PrintCollection(IEnumerable collection)
  150.         {
  151.             foreach (var item in collection)
  152.             {
  153.                 Console.WriteLine(item);
  154.             }
  155.         }
  156.     }
  157. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement