// Implement a set of extension methods for IEnumerable<T> // that implement the following group functions: sum, product, min, max, average. public static void Main() { //Testing of the various extensions for different types of collections and elements: IEnumerable<int> testInt = new List<int>() { 1, 2, 3, 4, 5 }; foreach (var item in testInt) { Console.Write(item + ", "); } Console.WriteLine(); Console.WriteLine("SumOfCollection = {0}", testInt.SumOfCollection()); Console.WriteLine(new string('-',20)); IEnumerable<double> testDouble = new[] { 1.5, 2.5, 3.5, 4.5, 5.5 }; foreach (var item in testDouble) { Console.Write(item + ", "); } Console.WriteLine(); Console.WriteLine("SumOfColletion = {0}", testDouble.SumOfCollection()); Console.WriteLine("ProductOfCollection = {0}", testDouble.ProductOfCollection()); Console.WriteLine("MinValueInCollection = {0}", testDouble.MinValueInCollection()); Console.WriteLine("MaxValueInCollection = {0}", testDouble.MaxValueInCollection()); Console.WriteLine("CollectionAverage = {0}", testDouble.CollectionAverage()); Console.WriteLine(); Console.WriteLine(IEnumerableExtensions.CollectionAverage(testInt)); Console.WriteLine(IEnumerableExtensions.ProductOfCollection(testDouble)); }
static void Main() { IEnumerable<int> list = new List<int>() { 5, 6, 7, 8, 3, 4, 6, 1 }; int sum = list.SumOfCollection(); int product = list.ProductOfCollection(); int min = list.MinElement(); int max = list.MaxElement(); int average = list.AverageOfCollection(); Console.WriteLine(average); }
static void Main() { IEnumerable<int> test = new List<int>() { 1, 2, 3, 4, 5 }; Console.WriteLine(test.SumOfCollection()); IEnumerable<double> test1 = new[] { 1.5, 2.5, 3.5, 4.5, 5.5 }; Console.WriteLine(test1.SumOfCollection()); Console.WriteLine(test1.ProductOfCollection()); Console.WriteLine(test1.MinValueInCollection()); Console.WriteLine(test1.MaxValueInCollection()); Console.WriteLine(test1.CollectionAverage()); Console.WriteLine(IEnumExtensions.CollectionAverage(test)); Console.WriteLine(IEnumExtensions.ProductOfCollection(test1)); }
static void Main() { IEnumerable <int> list = new List <int>() { 5, 6, 7, 8, 3, 4, 6, 1 }; int sum = list.SumOfCollection(); int product = list.ProductOfCollection(); int min = list.MinElement(); int max = list.MaxElement(); int average = list.AverageOfCollection(); Console.WriteLine(average); }
static void Main() { //Testing of the various extensions for different types of collections and elements: IEnumerable<int> test = new List<int>() { 1, 2, 3, 4, 5 }; Console.WriteLine(test.SumOfCollection()); IEnumerable<double> test1 = new[] { 1.5, 2.5, 3.5, 4.5, 5.5 }; Console.WriteLine(test1.SumOfCollection()); Console.WriteLine(test1.ProductOfCollection()); Console.WriteLine(test1.MinOfCollection()); Console.WriteLine(test1.MaxOfCollection()); Console.WriteLine(test1.AverageOfCollection()); Console.WriteLine(IEnumerableExtensions.AverageOfCollection(test)); Console.WriteLine(IEnumerableExtensions.ProductOfCollection(test1)); }
static void Main() { //Testing of the various extensions for different types of collections and elements: IEnumerable <int> test = new List <int>() { 1, 2, 3, 4, 5, 6, 7 }; Console.WriteLine("Sum of Collection: " + test.SumOfCollection()); IEnumerable <double> test1 = new[] { 1.2, 0.5, 23.5, 4, 5 }; Console.WriteLine("Sum of Collection: " + test1.SumOfCollection()); Console.WriteLine("Product of Collection: " + test1.ProductOfCollection()); Console.WriteLine("Min of Collection: " + test1.MinValueInCollection()); Console.WriteLine("Max of Collection: " + test1.MaxValueInCollection()); Console.WriteLine("Average of Collection: " + test1.CollectionAverage()); }
static void Main() { //Testing of the various extensions for different types of collections and elements: IEnumerable <int> test = new List <int>() { 1, 2, 3, 4, 5 }; Console.WriteLine(test.SumOfCollection()); IEnumerable <double> test1 = new[] { 1.5, 2.5, 3.5, 4.5, 5.5 }; Console.WriteLine(test1.SumOfCollection()); Console.WriteLine(test1.ProductOfCollection()); Console.WriteLine(test1.MinValueInCollection()); Console.WriteLine(test1.MaxValueInCollection()); Console.WriteLine(test1.CollectionAverage()); Console.WriteLine(IEnumerableExtensions.CollectionAverage(test)); Console.WriteLine(IEnumerableExtensions.ProductOfCollection(test1)); }
static void Main() { IEnumerable <int> test = new List <int>() { -2, 1, 3, 4, 2 }; IEnumerable <double> test1 = new List <double>() { 1.2, 2.3, 4.3, 0.3 }; Console.WriteLine(test.SumOfCollection()); Console.WriteLine(test1.SumOfCollection()); Console.WriteLine(test.ProductOfCollection()); Console.WriteLine(test1.ProductOfCollection()); Console.WriteLine(test.MinOfCollection()); Console.WriteLine(test.MaxOfCollection()); Console.WriteLine(test1.MinOfCollection()); Console.WriteLine(test1.MaxOfCollection()); Console.WriteLine(test.Average()); Console.WriteLine(test1.Average()); Console.WriteLine(test.AverageOfCollection()); Console.WriteLine(test1.AverageOfCollection()); }
static void Main() { //Task 1 StringBuilder str = new StringBuilder(); Console.WriteLine("Substring extension method:"); str.Append("abcdefghijklmnopqrstuvwxyz"); Console.WriteLine(str); str = str.Substring(0, 3); Console.WriteLine("After Substring(0,3):"); Console.WriteLine(str + "\n"); //Task 2 List <double> listOfDouble = new List <double> { 2.323, 21.22, 1223, 56.13 }; Console.WriteLine("IEnumerable<T> extension methods:"); Console.WriteLine(string.Join(", ", listOfDouble)); Console.WriteLine("Sum of list: {0}", listOfDouble.SumOfCollection()); Console.WriteLine("Product of list: {0}", listOfDouble.Product()); Console.WriteLine("Min of list: {0}", listOfDouble.Minimum()); Console.WriteLine("Max of list: {0}", listOfDouble.Maximum()); Console.WriteLine("Average of list: {0}", listOfDouble.AverageOfCollection()); //Task 3 var students = new[] { new { FirstName = "Ivan", LastName = "Ivanov", Age = 20 }, new { FirstName = "Spas", LastName = "Parvanov", Age = 25 }, new { FirstName = "Georgi", LastName = "Slavkov", Age = 19 }, // list of annon. type new { FirstName = "Strasimir", LastName = "Asenov", Age = 18 }, new { FirstName = "Denica", LastName = "Znaikov", Age = 16 } }; Console.WriteLine("\r\nList of students:"); foreach (var item in students) { Console.WriteLine(item.FirstName + " " + item.LastName + " " + item.Age); } var firstNameBeforeLast = students .Where(st => st.FirstName .CompareTo(st.LastName) == -1); Console.WriteLine("\r\nStudents whose first name is before last name: "); foreach (var item in firstNameBeforeLast) { Console.WriteLine(item.FirstName + " " + item.LastName); } //Task 4 Console.WriteLine("\r\nStudents with age bw 18-24:"); var ageBw18And24 = students .Where(st => (st.Age >= 18) && (st.Age <= 24)) .Select(st => new { FirstName = st.FirstName, LastName = st.LastName }); foreach (var item in ageBw18And24) { Console.WriteLine(item.FirstName + " " + item.LastName); } //Task 5 Console.WriteLine("\r\nOrder by des with lambda:"); // Using the extension methods OrderBy() and ThenBy() with lambda expressions // sort the students by first name and last name in descending order. var orderStudents = students .OrderByDescending(st => st.FirstName) .ThenByDescending(st => st.LastName) .Select(st => st); foreach (var item in orderStudents) { Console.WriteLine(item.FirstName + " " + item.LastName + " " + item.Age); } // Rewrite the same with LINQ. Console.WriteLine("\r\nOrder by des with linq:"); var orderStudentsLinq = from st in students orderby st.FirstName descending orderby st.LastName descending select st; foreach (var item in orderStudentsLinq) { Console.WriteLine(item.FirstName + " " + item.LastName + " " + item.Age); } //Task 6 Console.WriteLine("\r\nArray of ints:"); int[] arr = { 7, 3, 21, 42, 3, 5, 2, 84, 54, 2, 2545, 23 }; Console.WriteLine(string.Join(", ", arr)); var divBy7And3 = arr .Where(n => (n % 7 == 0) && (n % 3 == 0)); Console.WriteLine("\r\nDivisable by 7 and 3 with lambda:"); Console.WriteLine(string.Join(", ", divBy7And3)); // with linq var divBy7And3Linq = from n in arr where (n % 7 == 0) && (n % 3 == 0) select n; Console.WriteLine("\r\nDivisable by 7 and 3 with linq:"); Console.WriteLine(string.Join(", ", divBy7And3Linq)); }