From wpf-dev-pack
Implements O(1) lookup patterns using HashSet, FrozenSet, and optimized Dictionary in .NET for high-performance search and membership testing.
npx claudepluginhub christian289/dotnet-with-claudecode --plugin wpf-dev-packThis skill uses the workspace's default tool permissions.
A guide for fast lookup APIs leveraging O(1) time complexity.
Generates design tokens/docs from CSS/Tailwind/styled-components codebases, audits visual consistency across 10 dimensions, detects AI slop in UI.
Records polished WebM UI demo videos of web apps using Playwright with cursor overlay, natural pacing, and three-phase scripting. Activates for demo, walkthrough, screen recording, or tutorial requests.
Delivers idiomatic Kotlin patterns for null safety, immutability, sealed classes, coroutines, Flows, extensions, DSL builders, and Gradle DSL. Use when writing, reviewing, refactoring, or designing Kotlin code.
A guide for fast lookup APIs leveraging O(1) time complexity.
Quick Reference: See QUICKREF.md for essential patterns at a glance.
| API | Time Complexity | Features |
|---|---|---|
HashSet<T> | O(1) | Mutable, no duplicates |
FrozenSet<T> | O(1) | Immutable, .NET 8+ |
Dictionary<K,V> | O(1) | Mutable, Key-Value |
FrozenDictionary<K,V> | O(1) | Immutable, .NET 8+ |
// O(1) time complexity for existence check
var allowedIds = new HashSet<int> { 1, 2, 3, 4, 5 };
if (allowedIds.Contains(userId))
{
// Allowed user
}
// Set operations
setA.IntersectWith(setB); // Intersection
setA.UnionWith(setB); // Union
setA.ExceptWith(setB); // Difference
using System.Collections.Frozen;
// Immutable fast lookup (read-only scenarios)
var allowedExtensions = new[] { ".jpg", ".png", ".gif" }
.ToFrozenSet(StringComparer.OrdinalIgnoreCase);
if (allowedExtensions.Contains(fileExtension))
{
// Allowed extension
}
// ❌ Two lookups
if (dict.ContainsKey(key))
{
var value = dict[key];
}
// ✅ Single lookup
if (dict.TryGetValue(key, out var value))
{
// Use value
}
// Lookup with default value
var value = dict.GetValueOrDefault(key, defaultValue);
// Case-insensitive string comparison
var set = new HashSet<string>(StringComparer.OrdinalIgnoreCase);
set.Add("Hello");
set.Contains("HELLO"); // true
| Scenario | Recommended Collection |
|---|---|
| Frequently modified set | HashSet<T> |
| Read-only configuration data | FrozenSet<T> |
| Frequent existence checks | HashSet<T> / FrozenSet<T> |
| Key-Value cache | Dictionary<K,V> |
| Static mapping table | FrozenDictionary<K,V> |