using System; using System.Collections; using System.Collections.Generic; using System.Text; using System.Linq; using System.Reflection; class Salary { int _id; int _year; double _salary; public int ID { get { return _id; } set { _id = value; } } public int Year { get { return _year; } set { _year = value; } } public double SalaryPaid { get { return _salary; } set { _salary = value; } } } class Employee { int _id; int _idRole; string _lastName; string _firstName; public int ID { get { return _id; } set { _id = value; } } public int IDRole { get { return _idRole; } set { _idRole = value; } } public string LastName { get { return _lastName; } set { _lastName = value; } } public string FirstName { get { return _firstName; } set { _firstName = value; } } } class Role { int _id; string role; public int ID { get { return _id; } set { _id = value; } } public string Role { get { return role; } set { role = value; } } } public class MainClass { public static void Main() { List<Employee> people = new List<Employee> { new Employee { ID = 1, IDRole = 1, LastName = "A", FirstName = "B"}, new Employee { ID = 2, IDRole = 2, LastName = "G", FirstName = "T"}, new Employee { ID = 3, IDRole = 2, LastName = "G", FirstName = "M"}, new Employee { ID = 4, IDRole = 3, LastName = "C", FirstName = "G"} }; List<Role> roles = new List<Role> { new Role { ID = 1, Role = "Manager" }, new Role { ID = 2, Role = "Developer" } }; List<Salary> salaries = new List<Salary> { new Salary { ID = 1, Year = 2004, SalaryPaid = 10.00 }, new Salary { ID = 1, Year = 2005, SalaryPaid = 15.00 }, new Salary { ID = 1, Year = 2005, SalaryPaid = 15.00 } }; var query = from p in people join s in salaries on p.ID equals s.ID where p.ID == 1 select s.SalaryPaid; Console.WriteLine("Average Salary:"); Console.Write(query.Average()); } }
use Linq Cast to convert array to IEnumerable
using System; using System.Collections; using System.Collections.Generic; using System.Text; using System.Linq; public class MainClass{ public static void Main(){ object[] doubles = {1.0, 2.0, 3.0}; IEnumerable<double> d = doubles.Cast<double>(); Console.Write(d); } }
The standard object creation and initialization vs Linq
using System; using System.Collections; using System.Collections.Generic; using System.Text; using System.IO; using System.Reflection; using System.Linq; using System.Xml; using System.Xml.Linq; class Person { int _id; int _idRole; string _lastName; string _firstName; public int ID { get { return _id; } set { _id = value; } } public int IDRole { get { return _idRole; } set { _idRole = value; } } public string LastName { get { return _lastName; } set { _lastName = value; } } public string FirstName { get { return _firstName; } set { _firstName = value; } } } class Program { static void Main(string[] args) { Person p1 = new Person(); p1.FirstName = "B"; p1.LastName = "A"; Person p2 = new Person { FirstName = "Tom", LastName = "Gray" }; } }
Average with int array
using System; using System.Linq; using System.Collections; using System.Collections.Generic; public class MainClass { public static void Main() { IEnumerable<int> intSequence = Enumerable.Range(1, 10); foreach (int i in intSequence) Console.WriteLine(i); double average = intSequence.Average(); Console.WriteLine("Here is the average: {0}", average); } }
uses Average to get the average of all values of an integer array.
using System; using System.Collections.Generic; using System.Linq; using System.Text; public class MainClass { public static void Main() { int[] numbers = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 }; double averageNum = numbers.Average(); Console.WriteLine("The average number is {0}.", averageNum); } }
Contains, Any return a bool value
using System; using System.Collections.Generic; using System.Linq; public class MainClass { public static void Main() { int[] numbers = { 10, 9, 8, 7, 6 }; bool hasTheNumberNine = numbers.Contains(9); // true bool hasMoreThanZeroElements = numbers.Any(); // true bool hasAnOddElement = numbers.Any(n => n % 2 == 1); // true } }
Any with false predicate
using System; using System.Linq; using System.Collections; using System.Collections.Generic; public class MainClass { public static void Main() { string[] presidents = {"G", "H", "a", "H", "over", "Jack"}; bool any = presidents.Any(s => s.StartsWith("A")); Console.WriteLine(any); } }