Головна‎ > ‎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();
}





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());