What is a HashSet?
CoddyのC#ジャーニー「ロジックとフロー」セクションの一部 — レッスン 56/66。
HashSet は、C# におけるコレクションで、特定の順序なしに一意の要素を格納します。System.Collections.Generic 名前空間の一部であり、高性能なセット操作を提供します。
まず、必要な名前空間を含めます:
using System.Collections.Generic;空の HashSet を作成:
HashSet<string> fruits = new HashSet<string>();これにより、文字列を格納できる HashSet が作成されます。
配列やリストとは異なり、HashSet は:
- 重複要素を許可しません
- 挿入順序を保持しません
- 高速なルックアップ操作を提供します (O(1) 複雑度)
- 一意性を確保する必要がある場合に理想的です
重複する要素を追加しようとすると、HashSet はそれを無視します:
fruits.Add("Apple");
fruits.Add("Apple"); // This is ignored上記のコードを実行した後、セットには依然として1つの "Apple" のみが含まれています。
チートシート
HashSet は、特定の順序なしで一意の要素を格納し、高速なルックアップ操作を提供するコレクションです。
必要な名前空間を含めます:
using System.Collections.Generic;HashSet を作成:
HashSet<string> fruits = new HashSet<string>();主な特徴:
- 重複要素は許可されません
- 挿入順序は維持されません
- 高速なルックアップ操作 (O(1) 複雑度)
- 重複した追加は無視されます
要素の追加:
fruits.Add("Apple");
fruits.Add("Apple"); // 無視 - 重複なし自分で試してみよう
このレッスンにはコードチャレンジは含まれていません。
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
ロジックとフローのすべてのレッスン
1Multi-dimensional Arrays
2D Arrays BasicsDeclaring and Initializing 2DAccessing 2D Array ElementsNested Loops with 2D ArraysJagged ArraysCommon Matrix OperationsRecap - Multi-dimensional4Flow Control Techniques
Early ReturnsGuard ClausesJump Statements (goto)Break and ContinueFlatten Nested Conditionals7Logical Operators Advanced
Short-Circuit EvaluationConditional Logical OperatorsOperator PrecedenceRecap - Advanced Operators2Advanced Decision Making
Multiple ConditionsComplex Boolean LogicIf vs. Switch ComparisonNested Switch StatementsRecap - Advanced Decisions5Exception Handling
Try-Catch BasicsException TypesMultiple Catch BlocksWorking with FilesFinally BlockUsing vs. Try-FinallyCustom ExceptionsRecap - Error Handling8Data Analysis System
Data Collection SetupData Entry Logic11HashSet Part 1
What is a HashSet?Adding an ElementRemoving an ElementChecking if an Element ExistsEmpty and SizeRecap - HashSet3Loop Enhancements
Loop PerformanceIterating ComplexEach Loop TypeRefactoring LoopsRecap - Optimized Loops6Null Handling
Null Reference BasicsNullable Value TypesNull Checking PatternsDefensive ProgrammingRecap - Null Safety