본문 바로가기
🌐 유니티 (Unity)

Day 17 - C#(Func & Action, Where문)

by shin0707 2024. 5. 2.
728x90
반응형

  • 주제

1. Func & Action
2. Where문


  • 공부내용

1. Func & Action

델리게이트를 대체하는 미리 정의된 제네릭 형식으로, 

-Func : 값을 반환하는 역할

(예를 들어, Func<int, string>의 경우, int를 입력받아서 string을 반환하는 메서드를 나타낸다.)

-Action: 값을 반환하지 않는 메서드를 나타내는 역할

(예를 들어, Action<int, string>의 경우, int와 string을 입력으로 받고,

아무런 값도 반환하지 않는 메서드를 나타낸다.)

 

1-1. Func 예제

// Func를 사용하여 두 개의 정수를 더하는 메서드
int Add(int x, int y)
{
    return x + y;
}

// Func를 이용한 메서드 호출
Func<int, int, int> addFunc = Add; //int, int를 입력받아서 int를 반환
int result = addFunc(3, 5);
Console.WriteLine("결과: " + result); //결과: 8

 

1-2. Action 예제

// Action을 사용하여 문자열을 출력하는 메서드
void PrintMessage(string message) 
{
    Console.WriteLine(message);
}

// Action을 이용한 메서드 호출
Action<string> printAction = PrintMessage;
printAction("Hello, World!");

 



2. Where문
원본 데이터에서 일부 조건을 만족하는 데이터를 추출할 때 사용한다.

예를 들어,

-특정 문자로 시작하는 문자열 추출

-나이가 20살 이상인 사람만 추출

2-1. 예제1(int 타입의 List에서 10보다 큰 숫자를 추출)

class Program
{
  static void Main(string[] args)
  {
    List<int> liNum = new List<int>()
    {
      1, 3, 5, 6, 7, 9, 10
    };

    // 1. 질의 구문(Query Syntax)
    List<int> linqQueryResult = (from   num in liNum
                                 where  num > 5
                                 select num).ToList();

    // 2. 메서드 구문(Method Syntax)
    List<int> linqMethodResult = liNum.Where(num => num > 5).ToList();


    Console.WriteLine("질의 구문");
    foreach (int num in linqQueryResult)
      Console.Write(num + " ");

    Console.WriteLine("\n메서드 구문");
    foreach (int num in linqMethodResult)
      Console.Write(num + " ");
  }
}

[출력]
질의 구문
6 7 9 10
메서드 구문
6 7 9 10

출처: https://developer-talk.tistory.com/565 [DevStory:티스토리]


2-2. 예제2(10보다 크고 홀수인 숫자 추출)

class Program
{
  static void Main(string[] args)
  {
    List<int> liNum = new List<int>()
    {
      1, 3, 5, 6, 7, 9, 10
    };

    // 1. 질의 구문(Query Syntax)
    List<int> linqQueryResult = (from   num in liNum
                                 where  num > 5 && num % 2 != 0
                                 select num).ToList();

    // 2. 메서드 구문(Method Syntax)
    List<int> linqMethodResult = liNum.Where(num => num > 5 && num % 2 != 0).ToList();


    Console.WriteLine("질의 구문");
    foreach (int num in linqQueryResult)
      Console.Write(num + " ");

    Console.WriteLine("\n메서드 구문");
    foreach (int num in linqMethodResult)
      Console.Write(num + " ");
  }
}

[출력]
질의 구문
7 9
메서드 구문
7 9
출처: https://developer-talk.tistory.com/565 [DevStory:티스토리]



참조사이트

https://developer-talk.tistory.com/565

 

[C#]LINQ 데이터 필터링 방법 - Where절

Where절 LINQ의 Where문은 원본 데이터에서 일부 조건을 만족하는 데이터를 추출해야하는 경우 사용됩니다. 예를 들자면, 아래 조건을 만족하는 데이터를 추출하기 위해 Where문을 사용할 수 있습니

developer-talk.tistory.com

 

728x90
반응형

loading