반응형
시퀀스 작업(Sequence operations)
시퀀스 작업 메서드는 집합 전체를 대상으로 작업한다.
SequenceEqual()
두 집합의 모든 요소가 같은 순서대로 있는지 비교할때 사용한다.
var wordsA = new string[] { "cherry", "apple", "blueberry" };
var wordsB = new string[] { "cherry", "apple", "blueberry" };
bool match = wordsA.SequenceEqual(wordsB);
// match = true
var wordsA = new string[] { "cherry", "apple", "blueberry" };
// 순서를 변경하면 결과가 달라진다.
var wordsB = new string[] { "apple", "blueberry", "cherry" };
bool match = wordsA.SequenceEqual(wordsB);
// match = false
Zip()
두 집합을 연결할때 사용한다.
int[] numbersA = { 0, 2, 4, 5, 6, 8, 9 };
int[] numbersB = { 1, 3, 5, 7, 8 };
var allNumbers = numbersA.Concat(numbersB);
// allNumbers = { 0, 2, 4, 5, 6, 8, 9, 1, 3, 5, 7, 8 }
Enumerable.Zip()
집합 A의 모든 요소와 집합 B의 모든 요소를 하나하나 대조하여 연결하는 메서드이다.
주로 수학에서 벡터의 내적 곱을 계산할때 사용된다.
int[] vectorA = { 0, 2, 4, 5, 6 };
int[] vectorB = { 1, 3, 5, 7, 8 };
int dotProduct = vectorA.Zip(vectorB, (a, b) => a * b).Sum();
// dotProduct = 109
반응형
'C#' 카테고리의 다른 글
[C#] 객체지향 프로그래밍 이해하기 (0) | 2023.10.12 |
---|---|
[C#] 가변인자 매개변수 params (0) | 2023.07.25 |
[C#] 링크(LINQ) - 집합 연산자 Distinct, Union, Intersect, Except (0) | 2023.07.20 |
[C#] 링크(LINQ) Take(), Skip() (0) | 2023.07.17 |
[C#] 링크(LINQ) 메서드식 표현 (0) | 2023.07.17 |