{"id":17807449,"url":"https://github.com/isc30/linq-collections","last_synced_at":"2025-07-08T06:06:28.327Z","repository":{"id":57156528,"uuid":"91829901","full_name":"isc30/linq-collections","owner":"isc30","description":"Strongly typed Linq and Collections implementation for Javascript and TypeScript (ECMAScript 5)","archived":false,"fork":false,"pushed_at":"2022-02-07T19:31:34.000Z","size":555,"stargazers_count":119,"open_issues_count":14,"forks_count":11,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-06-10T19:07:58.171Z","etag":null,"topics":["collections","javascript","linq","performance","statically-typed","strongly-typed","typescript"],"latest_commit_sha":null,"homepage":"https://www.npmjs.com/package/linq-collections","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/isc30.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-05-19T17:28:37.000Z","updated_at":"2024-10-18T09:52:39.000Z","dependencies_parsed_at":"2022-09-07T20:31:42.688Z","dependency_job_id":null,"html_url":"https://github.com/isc30/linq-collections","commit_stats":null,"previous_names":[],"tags_count":18,"template":false,"template_full_name":null,"purl":"pkg:github/isc30/linq-collections","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/isc30%2Flinq-collections","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/isc30%2Flinq-collections/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/isc30%2Flinq-collections/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/isc30%2Flinq-collections/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/isc30","download_url":"https://codeload.github.com/isc30/linq-collections/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/isc30%2Flinq-collections/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261170411,"owners_count":23119510,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["collections","javascript","linq","performance","statically-typed","strongly-typed","typescript"],"created_at":"2024-10-27T14:04:28.028Z","updated_at":"2025-07-08T06:06:28.308Z","avatar_url":"https://github.com/isc30.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Linq-Collections: (IEnumerable, ...) + (List, Dictionary, ...)\r\n\r\n[![npm version](https://img.shields.io/npm/v/linq-collections.svg)](https://npmjs.org/package/linq-collections)\r\n[![npm downloads](https://img.shields.io/npm/dt/linq-collections.svg)](https://npmjs.org/package/linq-collections)\r\n[![build status](https://travis-ci.org/isc30/linq-collections.svg?branch=master)](https://travis-ci.org/isc30/linq-collections)\r\n[![coverage](https://coveralls.io/repos/github/isc30/linq-collections/badge.svg?branch=master\u0026cache=no)](https://coveralls.io/github/isc30/linq-collections?branch=master)\r\n[![](https://img.shields.io/badge/click-run%20browser%20tests-orange.svg)](https://isc30.github.io/linq-collections/mocha)\r\n\u003c!-- [![package dev-dependencies](https://img.shields.io/david/dev/isc30/linq-collections.svg)](https://npmjs.org/package/linq-collections) --\u003e\r\n\r\nStrongly typed *Linq* implementation for *Javascript* and *TypeScript* (*ES5*, *ES6*, +)\u003cbr /\u003e\r\nIncludes collections (+ readonly versions): List, Dictionary, Stack, ...\r\n\r\n## Current Stable Version\r\nhttps://github.com/isc30/linq-collections\u003cbr/\u003e\r\nThis project was developed by Ivan Sanz (isc30)\u003cbr /\u003e\r\n\r\nThe project is already finished, yet some features are missing. If you want to contribute with any of these, please check the [Development status and missing features list](https://github.com/isc30/linq-collections/projects/1)\u003cbr/\u003e\r\nI will be happy to accept pull requests :D\r\n\r\n[![](https://img.shields.io/badge/click-run%20browser%20tests-orange.svg)](https://isc30.github.io/linq-collections/mocha)\r\n\r\n## Intellisense friendly\r\nEvery single method has **complete** type definitions available.\u003cbr /\u003e\r\nIf you use TypeScript, its purely is based in **generics**.\u003cbr /\u003e\u003cbr /\u003e\r\n[Insert motivational GIF with intellisense in action]\r\n\r\n## Browser compatibility: 100%\r\nUsing **ES5**, it has **100% compatibility** with nodejs and all main browsers (+mobile)\u003cbr/\u003e\r\nCheck your browser now if you don't believe it -\u003e [![](https://img.shields.io/badge/click-run%20browser%20tests-orange.svg)](https://isc30.github.io/linq-collections/mocha)\r\n\r\n## Performance\r\n*Linq-Collections* uses custom **iterators** and **deferred execution** mechanisms that ensure **BLAZING FAST** operations, outperforming any other popular library. Its also optimized to work with **minimal CPU and RAM usage**.\r\n\r\n## Why use it?\r\nIf previous reasons aren't enought, here are few more:\r\n- **Javascript \u0026\u0026 TypeScript compatible** - You can use it with JS or TypeScript (contains .d.ts definitions)\r\n- **No dependencies** - Pure and lightweight\r\n- **100% browser/nodejs support** - Stop caring about compatibility, it works everywhere!\r\n- **Strongly typed** - Developed in TypeScript, it uses no 'any' or dirty code. Everything is based in generics and strongly typed\r\n- **Best performance** - Deferred execution with custom iterators make the difference. Currently the fastest library.\r\n- **Works out of the box** - *'npm install linq-collections'* is the hardest thing you'll need to do\r\n- **Collections** - Provides many type of collections (list, dictionary, ... + readonly) with linq integrated inside. As in C#\r\n- **Strict standard** - Strictly implementing [microsoft's official linq definition](https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/linq/classification-of-standard-query-operators-by-manner-of-execution) (you can check it for exceptions, behavior, etc)\r\n- **Deeply tested** - Each new version is passing tons of quality tests before being released\r\n\r\n## Using the package\r\nInterfaces for this library are already designed. New versions won't break any old code.\r\nWe strongly recommend using `*` for version selector\r\n```json\r\ndependencies {\r\n    \"linq-collections\": \"1.*\"\r\n}\r\n```\r\n\r\n## Features\r\nComplete **Linq to Objects** implementation (deferred execution)\r\n\u003e toArray, toList, toDictionary, toLookup, aggregate, all, any, average, concat, contains, count, defaultIfEmpty, distinct, elementAt, elementAtOrDefault, except, first, firstOrDefault, forEach, groupBy, groupJoin, intersect, join, last, lastOrDefault, longCount, max, min, orderBy, orderByDescending, reverse, select, selectMany, sequenceEquals, single, single, singleOrDefault, skip, skipWhile, sum, take, takeWhile, union, where, zip, ...\r\n\r\nCollections (+ readonly versions)\r\n\u003e List, Dictionary, Stack, Queue, ...\r\n\r\nAll Collections are **Queryable**\r\n```typescript\r\nconst list = new List\u003cstring\u003e([\r\n    \"Hello\",\r\n    \"Bye\",\r\n    \"Thanks\",\r\n]);\r\n\r\nconst notHello = list.where(e =\u003e e !== \"Hello\");\r\n```\r\n\r\n## How to run tests\r\nThis library uses `mocha` with custom assertion helper for testing.\u003cbr /\u003e\r\nUse `nyc mocha` to run the tests and coverage.\r\n\r\n## Hall of fame\r\n* [@nikolalukovic](https://github.com/nikolalukovic)\r\n* [@tholdrim](https://github.com/tholdrim)\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fisc30%2Flinq-collections","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fisc30%2Flinq-collections","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fisc30%2Flinq-collections/lists"}