본문 바로가기

C#

C# 기초문법 - 람다식의 활용법에 대해 알아보자

반응형

 

람다식


람다식, 또는 람다 함수는 프로그래밍 언어에서 사용되는 개념으로 익명 함수(Anonymous functions)를 지칭하는 용어이다. 프로그래밍 언어학적으로 파고들면 이것만 한 달 이상 배우는 경우도 많으며, 실제로 여러 대학들에서 사용하는 프로그래밍 언어 교재에서도 꽤나 많은 분량을 차지하는 개념이다. 실무적으로는 코드의 간결함, 지연 연산을 통한 퍼포먼스 향상, 그리고 기존 이터레이션 관련 코드를 구현하는 데 있어 불필요한 부분들을 제거할 수 있다는 점에서 비교적 중요하게 다루어지고 있다. 람다식은 주로 고차 함수에 인자(argument)로 전달되거나 고차 함수가 돌려주는 결과값으로 쓰인다.

 

https://mrw0119.tistory.com/22

 

<c# 강의=""> 8장. 람다식 (Lamda Expression)</c#>

1. 람다식 람다식은 무명 메소드를 단순한 계산식으로 표현한 것 이다. 메소드는 크게 매개변수와 내부 식, 반환값으로 구성되어 있는데, 이들만 가지고 메소드를 계산식으로 표현한다. 무명 메

mrw0119.tistory.com

using System;
using System.Collections.Generic;

namespace ConsoleApp4
{
    class Program
    {
        class Product
        {
            public string Name { get; set; }
            public int Price { get; set; }
        }
        //static int ArraySortPrice(Product t1, Product t2)
        //{
        //   return t1.Price.CompareTo(t2.Price) * -1;  //*-1을 통해서 역순 정렬 가능!!
        //}
        static int ArraySortName(Product t1, Product t2)
        {
            return t1.Name.CompareTo(t2.Name) ;
        }
        delegate int ArraySort(Product t1, Product t2); // 델리게이트 선언

        static void Main(string[] args)
        {
            List<Product> product = new List<Product>()
            {
                new Product(){Name = "감자" ,Price = 500},
                new Product(){Name = "사과" ,Price = 700},
                new Product(){Name = "곡마" ,Price = 400},
                new Product(){Name = "배추" ,Price = 600},
                new Product(){Name = "상추" ,Price = 300},
            };

            product.Sort((Product t1, Product t2)=>t1.Price.CompareTo(t2.Price) ); //*-1을 통해서 역순 정렬 가능!!
                                                                                                         // 중요 기억하기!!!  가격으로 정렬
                                                                                                         //product.Sort(ArraySortName);//   중요 기억하기!!!  이름으로 정렬
            foreach (var item in product)
            {
                Console.WriteLine(item.Name+":"+item.Price);  
            }
        }
    }
}

반응형