LINQ Partition 연산자 (Take, Skip)
2022. 2. 3. 00:00ㆍCSharp/Advance
반응형
Take 및 Skip
입력 시퀀스를 분할
TakeWhile 및 SkipWhile
입력 시퀀스의 조각을 출력 시퀀스로 얻을 수 있다.
요소 가져오기
int[] numbers = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 };
var first3Numbers = numbers.Take(3);
Console.WriteLine("First 3 numbers:");
foreach (var n in first3Numbers) Console.WriteLine(n);
// output
First 3 numbers:
5
4
1
요소 건너뛰기
int[] numbers = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 };
var allButFirst4Numbers = numbers.Skip(4);
Console.WriteLine("All but first 4 numbers:");
foreach (var n in allButFirst4Numbers)
{
Console.WriteLine(n);
}
//output
All but first 4 numbers:
9
8
6
7
2
0
조건에 따라 가져오기
int[] numbers = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 };
var firstNumbersLessThan6 = numbers.TakeWhile(n => n < 6);
Console.WriteLine("First numbers less than 6:");
foreach (var num in firstNumbersLessThan6)
{
Console.WriteLine(num);
}
//output
First numbers less than 6:
5
4
1
3
조건에 따라 건너뛰기
int[] numbers = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 };
// In the lambda expression, 'n' is the input parameter that identifies each
// element in the collection in succession. It is is inferred to be
// of type int because numbers is an int array.
var allButFirst3Numbers = numbers.SkipWhile(n => n % 3 != 0);
Console.WriteLine("All elements starting from first element divisible by 3:");
foreach (var n in allButFirst3Numbers)
{
Console.WriteLine(n);
}
//output
All elements starting from first element divisible by 3:
3
9
8
6
7
2
0
조건에 따라 가져오기 (Index 활용)
int[] numbers = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 };
var firstSmallNumbers = numbers.TakeWhile((n, index) => n >= index);
Console.WriteLine("First numbers not less than their position:");
foreach (var n in firstSmallNumbers)
{
Console.WriteLine(n);
}
//output
First numbers not less than their position:
5
4
조건에 따라 건너뛰기 (index 활용)
int[] numbers = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 };
var laterNumbers = numbers.SkipWhile((n, index) => n >= index);
Console.WriteLine("All elements starting from first element less than its position:");
foreach (var n in laterNumbers)
{
Console.WriteLine(n);
}
//output
All elements starting from first element less than its position:
1
3
9
8
6
7
2
0
관련영상
반응형
'CSharp > Advance' 카테고리의 다른 글
LINQ Grouping Operators (GroupBy , into) (0) | 2022.02.07 |
---|---|
LINQ 순서정렬 연산자 (OrderBy) (0) | 2022.02.04 |
LINQ Projection 연산자 (Select) (0) | 2022.02.02 |
LINQ 제한 연산자 (Where) (0) | 2022.02.01 |
LINQ 란 (0) | 2022.01.31 |