C#190 [C#]Stack 특정 값 존재하는지 확인하는 방법 Stack 특정 값 존재하는지 확인하는 방법 Stack은 제일 마지막에 들어온 데이터가 가장 먼저 나가는 LIFO(Last-In First-Out) 구조의 자료구조입니다. C#의 컬렉션은 Stack 클래스를 제공하며, Push() 메서드와 Pop() 메서드를 사용하여 데이터를 추가하거나 제거할 수 있습니다. 이번 포스팅은 Stack 구조에 대해 설명하지는 않으며, 특정 값 또는 특정 조건을 만족하는 데이터가 존재하는지 확인할 수 있는 몇 가지 방법을 소개합니다. 방법 1. Stack 클래스의 Contains 메서드 Stack 클래스의 Contains() 메서드를 사용하여 특정 값이 존재하는지 확인할 수 있습니다. Contains() 메서드는 매개변수로 전달된 값이 Stack에 존재하면 true를 반환하고.. C# 2022. 8. 28. [C#]배열 마지막 요소 제거하는 방법 배열 마지막 요소 제거하는 방법 배열은 크기가 고정되어 있으므로 C#에서 배열의 마지막 요소를 제거할 수 없습니다. 배열이 생성되면, 배열의 크기가 고정으로 설정되므로 요소를 추가하거나 제거할 수 없습니다. 하지만, 마지막 요소가 제거된 새로운 배열을 생성하는 것은 가능합니다. 이번 포스팅은 배열의 마지막 요소가 제거된 새로운 배열을 생성하는 몇 가지 방법을 소개합니다. 방법 1. List로 변환 첫 번째 방법으로 배열을 크기가 동적인 List로 변환하여 마지막 요소를 제거할 수 있습니다. [제거 방법] 순서 1. 배열을 List로 변환합니다. 순서 2. List의 마지막 요소를 제거합니다. 순서 3. 마지막 요소가 제거된 List를 다시 배열로 변환합니다. class Program { static vo.. C#/배열 2022. 8. 28. [C#]List 마지막 요소 제거 List 마지막 요소 제거 이번 포스팅은 C#의 List에서 마지막 요소를 제거하는 몇 가지 방법을 소개합니다. 방법 1. List의 RemoveAt 메서드(권장 방법) 첫 번째 방법으로 ArrayList 클래스에서 제공하는 RemoveAt() 메서드를 사용하여 마지막 요소를 제거할 수 있습니다. public void RemoveAt(int index); RemoveAt() 메서드의 매개변수로 인덱스를 전달하면 해당 인덱스에 있는 요소가 제거됩니다. RemoveAt() 메서드의 반환 타입은 void이므로 아무것도 반환하지 않습니다. class Program { static void Main(string[] args) { List intList = new List() { 1, 2, 3, 4, 5 }; Co.. C# 2022. 8. 28. [C#]배열 복사하는 방법 배열 복사하는 방법 C#의 배열은 참조 타입이므로 실제 데이터는 Heap 영역에 생성되고 변수는 Stack 영역에 생성됩니다. Stack 영역에 생성된 변수는 참조 값(Heap 영역에 생성된 실제 데이터의 위치)을 통해 배열의 데이터를 접근합니다. 만약, 참조 값을 다른 변수에 할당하는 경우 두 개 이상의 변수가 Heap 영역에 존재하는 배열의 데이터를 공유하게 됩니다. 다음 예제는 배열 변수를 다른 변수에 할당 후 값을 변경했을 때, 원본 데이터가 보존되지 않는 문제를 보여줍니다. class Program { static void Main(string[] args) { int[] intArray = { 5, 10, 15, 20 }; int[] copyArray = intArray; Console.Wri.. C#/배열 2022. 8. 23. [C#]HashSet 반복문 사용 방법 HashSet 반복문 사용 방법 HashSet은 값을 인덱스(Index)가 아닌 해시(Hash)로 관리합니다. 따라서, 인덱스를 사용하여 값을 접근할 수 없으며 HashSet 객체를 순회하기 위해 for문과 while문을 사용하는 것도 불가능합니다. 이번 포스팅은 HashSet에 반복문을 사용하여 각 요소를 접근하는 몇 가지 방법을 소개합니다. 방법 1. foreach문 C#은 배열 또는 컬렉션과 같은 데이터 집합을 반복할 수 있는 foreach문을 제공합니다. for문을 사용하는 방법보다 간단하며, 인덱스를 사용하지 않는 HashSet을 순회하는 방법으로 가장 적합한 방법입니다. 예제 1. 기본 타입 다음 예제는 foreach문을 사용하여 HashSet의 각 요소를 출력합니다. class Program.. C# 2022. 8. 23. [C#]HashSet 합치는 방법 HashSet 합치는 방법 이번 포스팅은 두 개의 HashSet을 합치는 몇 가지 방법을 소개합니다. 방법 1. HashSet의 UnionWith 메서드 HashSet 클래스에서 제공하는 UnionWith() 메서드를 사용하여 두 개의 HashSet을 합칠 수 있습니다. public void UnionWith(IEnumerable other); A와 B라는 두 개의 HashSet 객체가 존재한다고 가정합시다. A가 UnionWith() 메서드를 호출하고 UnionWith() 메서드에 B를 전달하면, A는 B를 값을 포함합니다. B의 값은 변경되지 않습니다. UnionWith() 메서드의 매개변수는 IEnumerable 타입이므로 HashSet 이외에도 IEnumerable 인터페이스를 구현하는 List,.. C# 2022. 8. 22. [C#]HashSet 초기화 방법 HashSet 초기화 방법 이번 포스팅은 C#의 HashSet 객체를 초기화하는 몇 가지 방법을 소개합니다. 방법 1. null(권장하지 않음) HashSet 객체를 null로 초기화할 수 있습니다. null로 초기화하는 경우 HashSet 클래스에서 제공하는 메서드 및 프로퍼티를 사용할 수 없으므로 null로 초기화하는 방법은 권장하지 않습니다. 다음 예제는 null로 초기화된 HashSet 객체에서 HashSet 클래스에서 제공하는 Add() 메서드를 호출했을 때, 런타임 에러가 발생하는 것을 보여줍니다. class Program { static void Main(string[] args) { HashSet hs = null; hs.Add(10); } } [에러 내용] 방법 2. 기본 생성자 함수 기.. C# 2022. 8. 21. [C#]HashSet 특정 값 가져오는 방법 HashSet 특정 값 가져오는 방법 C#의 HashSet은 해시(Hash)를 기반으로 값을 관리하므로 인덱스를 사용하여 값을 가져올 수 없습니다. 다음 예제처럼 대괄호를 사용하여 값을 가져오는 소스 코드를 작성하면 컴파일 에러가 발생합니다. class Program { static void Main(string[] args) { HashSet hs = new HashSet() { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; Console.WriteLine("0번째 위치의 값: " + hs[0]); } } [에러 내용] HashSet은 인덱스를 사용하지 않으므로 List처럼 인덱스를 사용하여 데이터 접근 및 데이터 정렬을 수행할 수 없습니다. 하지만, 해시 기반으로 값을 관리하므로 추가, .. C# 2022. 8. 21. [C#]HashSet 특정 값 삭제 방법 HashSet 특정 값 삭제 방법 이번 포스팅은 HashSet 클래스에서 제공하는 메서드를 사용하여 HashSet의 데이터를 삭제할 수 있는 몇 가지 방법을 소개합니다. 방법 1. HashSet의 Remove 메서드 HashSet 클래스에서 제공하는 Remove() 메서드에 특정 값을 전달하여 데이터를 삭제할 수 있습니다. public bool Remove (T item); 정상적으로 삭제한 경우 true를 반환하고 특정 값이 HashSet에 존재하지 않으면 false를 반환합니다. 예제 1. 기본 타입 다음 예제는 int 타입의 HashSet에서 값이 10, 20, 50인 데이터를 삭제합니다. class Program { static void Main(string[] args) { HashSet hs .. C# 2022. 8. 21. [C#]HashSet 데이터 추가하는 방법 HashSet 데이터 추가하는 방법 이번 포스팅은 HashSet에 데이터를 추가할 수 있는 몇 가지 방법을 소개합니다. 방법 1. 초기화 첫 번째 방법으로 HashSet 객체를 생성할 때, 데이터를 추가할 수 있습니다. 생성자 함수 다음에 중괄호를 사용하며, 중괄호 내부에 추가하려는 데이터를 입력합니다. 예제 1. 기본 타입 다음 예제는 int 타입의 HashSet 객체를 생성할 때, 데이터를 추가합니다. class Program { static void Main(string[] args) { HashSet hs = new HashSet() { 10, 20, 30, 40, 50 }; Console.WriteLine("[hs의 요소]"); foreach (int item in hs) { Console.Wr.. C# 2022. 8. 21. [C#]HashSet 특정 값이 존재하는지 확인하는 방법 HashSet 특정 값이 존재하는지 확인하는 방법 HashSet은 중복되지 않은 값들이 존재하는 데이터 집합입니다. 다음 예제에서 확인할 수 있듯이 HashSet 객체를 초기화할 때, 동일한 값인 3을 4번 할당했지만 단 하나의 값만 할당되었습니다. 즉, 이미 존재하는 값은 추가되지 않습니다. class Program { static void Main(string[] args) { HashSet hs = new HashSet() { 3, 3, 3, 3 }; Console.WriteLine("hs.Count: " + hs.Count); Console.WriteLine("\n[hs의 요소]"); foreach (int item in hs) { Console.Write(item + " "); } } } [실행.. C# 2022. 8. 21. [C#]Dictionary 초기화 방법 Dictionary 초기화 방법 이번 포스팅은 C#의 Dictionary 객체를 초기화하는 몇 가지 방법을 소개합니다. 방법 1. null(권장하지 않음) Dictionary 객체를 null로 초기화할 수 있습니다. null로 초기화하는 경우 Ditionary 클래스에서 제공하는 메서드를 사용할 수 없으므로 null로 초기화하는 방법은 권장하지 않습니다. 다음 예제는 null로 초기화된 Dictionary 객체에서 Dictionary 클래스에서 제공하는 Add() 메서드를 호출했을 때, 런타임 에러가 발생하는 것을 보여줍니다. class Program { static void Main(string[] args) { Dictionary dict = null; dict.Add("둘리", 10); } } [에.. C# 2022. 8. 20. 이전 1 2 3 4 5 ··· 16 다음