Головна‎ > ‎C#‎ > ‎Додатково‎ > ‎

Лямбда-вирази

delegate int Operation(int x, int y); 

static void Main(string[] args)
{
            Operation operation = (x, y) => x + y;
            Console.WriteLine(operation(10, 20));       // 30
            Console.WriteLine(operation(40, 20));       // 60
            Console.Read();
}



Пошук в об'єктах

Pet[] pets = { 
     new Pet { Name="Андрій", Successful=true }, 
     new Pet { Name="Дмитро", Successful=true }, 
     new Pet { Name="Віктор", Successful=false } 
}; 


try { 
     int numberSuccessful = pets.Count(p => p.Successful == true); 
     Console.WriteLine("There are {0} unvaccinated animals.", numberSuccessful); 
catch (OverflowException) 
     Console.WriteLine("Число більше за Int32"); 
     Console.WriteLine("Спробуйте метод LongCount()"); } 
}

------------

class Pet { 
     public string Name { get; set; } 
     public bool Successful { get; set; } 



Пошук в списку

static void Main(string[] args)
{
     IList<Student> studentList = new List<Student>() {
     new Student() { StudentID = 1, StudentName = "John", Age = 18, StandardID = 1 } ,
     new Student() { StudentID = 2, StudentName = "Steve",  Age = 21, StandardID = 1 } ,
     new Student() { StudentID = 3, StudentName = "Bill",  Age = 18, StandardID = 2 } ,
     new Student() { StudentID = 4, StudentName = "Ram", Age = 20, StandardID = 2 } ,
     new Student() { StudentID = 5, StudentName = "Ron", Age = 21 }
     };

     var studentNames = studentList.Where(s => s.Age > 18)
                                  .Select(s => s)
                                  .Where(st => st.StandardID > 0)
                                  .Select(s => s.StudentName);

     foreach(var name in studentNames)
     {
          Console.WriteLine(name);     
     }
          Console.ReadKey();
}

------------

public class Student
{
            public int StudentID { get; set; }
            public string StudentName { get; set; }
            public int Age { get; set; }
            public int StandardID { get; set; }
}     



Прибирання дублікатів (не дуже ефективне, в порівнянні зі звичайним циклом)

var query = from p in Process.GetProcesses()
                 join mo in results.Cast<ManagementObject>() on p.Id equals (int)(uint)mo["ProcessId"]
                 select new { Process = p, Path = (string)mo["ExecutablePath"] };

var uniquePaths = query.GroupBy(item => item.Path).Select(item => item.First());