C# Toolkit™ Library Overview
Our C# Toolkit is a library of advanced collections, algorithms, functions and predicates that are designed to complement the basic features found in the .NET Framework 2.0. For the first time, Recursion is offering this product free for download.
C# Toolkit™ Library Contents
Namespaces
C# Toolkit™ includes six C# namespaces; each carefully designed to include a set of related functionality. This makes C# Toolkit easy to learn and fast to distribute in dll file format.
| Namespace | Contents |
|---|---|
| RecursionSW.Rdk | Interfaces, collection classes, and iterators |
| RecursionSW.Rdk.Adapters | C#-native array adapters |
| RecursionSW.Rdk.Algorithms | All C# Toolkit algorithms |
| RecursionSW.Rdk.Functions | Function objects that can be used to modify algorithms |
| RecursionSW.Rdk.Predicates | Predicate classes used to affect element ordering within containers |
| RecursionSW.Rdk.Util | A few miscellaneous utility classes, such as insertion enumeration |
Data Structures
C# Toolkit includes 14 optimized data structures that satisfy most programmer needs. These data structures have been engineered for performance and ease of use, and their performance either meets or beats every other commercially available C# container library. In addition, all C# Toolkit containers work correctly in multi-threaded situations.
| Sequences | |
|---|---|
| ArrayAdapter <T> | Adapts native arrays to C# Toolkit |
| ArrayList <T> | Linear, contiguous storage; fast inserts at the end only |
| Deque <T> | Linear, noncontiguous storage; fast inserts at extremities |
| Dlist <T> | Doubly linked list, fast inserts anywhere |
| Slist <T> | Singly linked list, fast inserts at either extremity |
| Maps | |
| HashMap <K, V> | Associative container of Key, Value pairs. 1-to-1 or 1-to-many mappings, stored using hash |
| OrderedMap <K, V> | Associative container of Key, Value pairs. 1-to-1 or 1-to-many mappings, stored in key-based order |
| LinkedHashMap <K, V> | Associative container of Key, Value pairs. 1-to-1 or 1-to-many mappings stored in insertion order |
| Sets | |
| HashSet <K, V> | Fast associative lookup, supports set operations |
| OrderedSet <K, V> | Fast associative lookup, stored in order, supports set operations |
| LinkedHashSet <K, V> | Fast associative lookup, stored in insertion order, supports set operations |
| Queues and Stacks | |
| PriorityQueue <T> | Access items in sorted order |
| Queue <T> | Adapt any ISequence<T> to a strict first-in, first-out data structure |
| Stack <T> | Adapt any iSequence to a strict last-in, first-out data structure |
Function Objects and Predicates
More advanced users will find the power and flexibility of function objects and predicates the open door to using C# Toolkit for enterprise development and extending C# Toolkit to add new features. Function objects are used by selective algorithms so that programmers can encapsulate behaviors for use by the algorithm. For example, using a function object, you can execute a transformation upon a collection of objects in place. Predicates are used by both algorithms and containers for ordering and comparing objects. For example, using a predicate, you can order a set in ascending or descending order, or perhaps in an order based on a complex, domain-specific calculation.