본문 바로가기
프로그래밍/C# LINQ

C# Linq - Enumerable.Where()

by bantomak 2024. 2. 15.
반응형

Enumerable.Where<TSource>(IEnumerable<TSource>, Func<TSource, Boolean>) 메서드

public static System.Collections.Generic.IEnumerable<TSource> Where<TSource>(this
System.Collections.Generic.IEnumerable<TSource> source,Func<TSource,bool> predicate);

매개변수

source IEnumerable<TSource>

필터링할 IEnumerable<T>

 

predicate Func<TSource, Boolean>

각 요소를 조건에 대해 테스트하는 함수

 

특정 조건으로 필터링해서 해당 조건에 부합하는 요소들만 취합하고 싶을 때 사용한다.

 

예제 코드

List<string> fruits =
    new List<string> { "apple", "passionfruit", "banana", "mango",
                    "orange", "blueberry", "grape", "strawberry" };

IEnumerable<string> query = fruits.Where(fruit => fruit.Length < 6);

foreach (string fruit in query)
{
    Console.WriteLine(fruit);
}
/*
 This code produces the following output:

 apple
 mango
 grape
*/

 

Enumerable.Where<TSource>(IEnumerable<TSource>, Func<TSource,Int32 Boolean>) 메서드

public static System.Collections.Generic.IEnumerable<TSource> Where<TSource> (this
System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,int,bool> predicate);

매개변수

source IEnumerable<TSource>

필터링할 IEnumerable<T>

 

predicate Func<TSource, Int32, Boolean>

각 요소를 조건에 대해 테스트하는 함수이며 해당 함수의 두번째 매개 변수는 요소의 인덱스를 나타낸다.

예제 코드

class Program
{
    static void Main(string[] args)
    {
        List<int> ints = new List<int>() { 1, 2, 3, 4, 5, 6 };

        var result = ints.Where((x, i) => i % 2 == 0);
        foreach(var i in result)
        {
            Console.WriteLine(i);
        }
        
        // 1 3 5
    }
}

 

출처

 

Enumerable.Where 메서드 (System.Linq)

조건자에 따라 값의 시퀀스를 필터링합니다.

learn.microsoft.com

'프로그래밍 > C# LINQ' 카테고리의 다른 글

C# Linq - Enumerable.Reverse()  (0) 2024.02.19
C# Linq - Enumerable.OfType()  (1) 2024.02.16
C# Linq - Enumerable.All()  (0) 2024.02.15
C# Linq - Enumerable.Range()  (0) 2023.12.18
C# Linq - Enumerable.Aggregate()  (19) 2023.06.26

댓글