C# Type Equivalents Across Languages

C# Type Java Swift PHP Perl Kotlin Python Ruby JavaScript Delphi FreePascal Go
Dictionary<string, object> Map<String, Object> [String: Any] array<string, mixed> %hash (hash reference) Map<String, Any> dict[str, Any] Hash Object (or Map with ES6) TDictionary<string, Variant> TFPHashObjectList or TStringList map[string]interface{}
List<string> List<String> [String] array<string> @array (array ref) List<String> list[str] Array Array<string> TList<string> array of string []string
HashSet<string> Set<String> Set<String> (from Foundation) array<string, bool> workaround %seen = map { $_ => 1 } @list Set<String> set[str] Set (from set) Set<string> (ES6) THashSet<string> TSet<string> (LGenerics) map[string]struct{}
delegate (e.g. Func<T>) FunctionalInterface / Lambda () -> Void or closure callable sub { ... } (code ref) () -> Unit Callable / lambda Proc, lambda, block function() {} or arrow ()=>{} procedure of object / TProc procedure of object or TMethod func() or func() any