Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- It
- XML
- cookie
- 제네릭
- IT 관련
- angularJS
- LINQ
- delegate
- 디자인패턴
- di
- Generic
- jQuery
- JavaScript
- MSSQL
- Excel
- 클래스
- asp.net mvc
- ASP.NET
- 메소드
- mvc
- SQL
- 구글
- ADO.NET
- csv
- 동적dom
- IT관련
- iframe
- c#
- Today
- 438
- Total
- 1,440,157
심재운 블로그
C# 합집합 교집합 LINQ 로 구현하기 본문
c# 으로 두 개의 배열 값을 가지고 합집합과 교집합을 LINQ 구문으로 구현해 보겠습니다.
아래 그림 처럼 좌측 차집합과 우측 차집합 그리고 가운데 교집합의 값을 추출해 보겠습니다.
저는 VISUAL STUDIO CODE 의 툴을 이용해서 기술해 보겠습니다.
설치하지 않으신 분은 https://code.visualstudio.com/download 사이트에서 다운받아 설치하시면 됩니다.
설치 한 후, c# 을 실행하기위한 별도의 작업을 해야 합니다.
.net core 와 c# 확장 프로그램을 설치 한 후 아래와 같이 진행합니다.
visual studio code 에서 상단 메뉴 중, 보기 > 통합터미널을 선택합니다.
그리고 해당 폴더에서 ConsoleTest 라는 폴더를 만듭니다.
PS D:\SampleSource> mdir ConsoleTest
c# 의 솔루션을 콘솔로 구현할 예정입니다.
PS D:\SampleSource\ConsoleTest> dotnet new console
실행하면
"Console Application" 템플릿을 만들었습니다.
사후 생성 작업을 처리하는 중...
D:\SampleSource\ConsoleTest\ConsoleTest.csproj에 대해 'dotnet restore' 실행 중...
Restoring packages for D:\SampleSource\ConsoleTest\ConsoleTest.csproj...
Generating MSBuild file D:\SampleSource\ConsoleTest\obj\ConsoleTest.csproj.nuget.g.props.
Generating MSBuild file D:\SampleSource\ConsoleTest\obj\ConsoleTest.csproj.nuget.g.targets.
Restore completed in 395.94 ms for D:\SampleSource\ConsoleTest\ConsoleTest.csproj.
복원했습니다.
이제 visual studio code 탐색기에도 콘솔프로그램을 위한 여러개의 파일이 생성된것을 보실 수 있습니다.
여기서 program.cs 파일을 선택해서 엽니다. 전체적인 코드를 우선 보죠.
using System;
using System.Linq;
namespace ConsoleTest
{
class Program
{
static void Main(string[] args)
{
int[] first = { 2, 4, 6, 8, 10 };
int[] second = { 3, 6, 9, 12 };
// 차집합 : first-second
var exceptLeft = first.Except(second); // 2, 4, 8, 10
foreach (var item in exceptLeft)
{
Console.Write(item.ToString() + ",");
}
Console.WriteLine("");
var exceptRight = second.Except(first); // 3, 9, 12
foreach (var item in exceptRight)
{
Console.Write(item.ToString() + ",");
}
Console.WriteLine("");
var intersection = second.Intersect(first); // 6
foreach (var item in intersection)
{
Console.Write(item.ToString() + ",");
}
}
}
}
LINQ 구문에서 차집합을 구현하기위해서는 차집합의 Except 와 교집합의 Intersect 함수를 사용하면 금방 해결이 됩니다.
dotnet run 구문을 visual studio code 의 터미널에서 실행하면 결과값이 나옵니다.
PS D:\SampleSource\ConsoleTest> dotnet run
2,4,8,10,
3,9,12,
6,
'닷넷관련 > LINQ' 카테고리의 다른 글
C# 합집합 교집합 LINQ 로 구현하기 (0) | 2018.03.23 |
---|---|
LINQ 의 Single, SingleOrDefault, First , FirstOrDefault 이해하기 (0) | 2017.06.08 |
LINQ Inner Join 으로 AND 와 OR 조건절 사용하기 (0) | 2017.06.08 |
json 문자열 array 형태 담아 parse 파싱하기 (2) | 2017.04.25 |
LINQ 구문 GROUP BY 사용해 보기 (2) | 2016.12.07 |
List 제네릭을 LINQ 를 통해 WHERE 하기 (0) | 2016.11.16 |
0 Comments