{"id":20812765,"url":"https://github.com/feast107/linqes","last_synced_at":"2025-05-07T11:04:48.702Z","repository":{"id":179637219,"uuid":"624814686","full_name":"feast107/linqes","owner":"feast107","description":"Aggressive extensions of LINQ in ES  on prototype of Array ","archived":false,"fork":false,"pushed_at":"2024-01-16T05:16:22.000Z","size":78,"stargazers_count":37,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-09-18T05:32:53.172Z","etag":null,"topics":["es","extension","fluent","generator","iterator","javascript","linq","typescript"],"latest_commit_sha":null,"homepage":"","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/feast107.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,"governance":null,"roadmap":null,"authors":null}},"created_at":"2023-04-07T10:18:50.000Z","updated_at":"2024-09-10T02:25:16.000Z","dependencies_parsed_at":"2024-01-05T20:30:37.102Z","dependency_job_id":"16bfc571-3a3c-41e9-8e50-70734d2adf44","html_url":"https://github.com/feast107/linqes","commit_stats":null,"previous_names":["feast107/linq-js","feast107/linqes","feast107/eslinq"],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/feast107%2Flinqes","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/feast107%2Flinqes/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/feast107%2Flinqes/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/feast107%2Flinqes/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/feast107","download_url":"https://codeload.github.com/feast107/linqes/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225091313,"owners_count":17419450,"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":["es","extension","fluent","generator","iterator","javascript","linq","typescript"],"created_at":"2024-11-17T20:58:08.285Z","updated_at":"2024-11-17T20:58:09.027Z","avatar_url":"https://github.com/feast107.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n\u003ch1\u003e\n\nlinqes\n\n\u003c/h1\u003e\n\n[LINQ](https://learn.microsoft.com/en-us/dotnet/csharp/linq/) in ES\n\n\u003c/div\u003e\n\n\u003cp align=\"center\"\u003e\n    \u003cimg alt=\"dotnet-version\" src=\"https://img.shields.io/badge/JavaScript-ES6-EEEE00.svg\"/\u003e\n    \u003cimg alt=\"dotnet-version\" src=\"https://img.shields.io/badge/TypeScript-Declare-blue.svg\"/\u003e\n    \u003cimg alt=\"npm\" src=\"https://img.shields.io/badge/npm-v1.1.1-FF3300.svg\"/\u003e\n    \u003cimg alt=\"license\" src=\"https://img.shields.io/badge/license-MIT-FF00FF.svg\"/\u003e\n\u003c/p\u003e\n\n---\n\n## Installation\n\n```shell\nnpm i linqes\n```\nor load through html\n\n```html\n\u003cscript type=\"text/javascript\" src=\"https://github.com/feast107/linqes/blob/master/index.min.js\" /\u003e\n```\n\n## Example\n\n```ts\nimport 'linqes'\n\nlet enumerable : IEnumerable\u003cnumber\u003e = new List\u003cnumber\u003e();\n\nenumerable = enumerable\n\t.where(x =\u003e x \u003e 3)\n\t.append(1)\n\t.concat([1, 2, 3, 4])\n\t.prepend(3)\n\t.select(x =\u003e x * 2)\n\t.reverse()\n\t.chunk(3)\n\t.selectMany(x =\u003e x) \n\nconst list : List\u003cnumber\u003e = enumerable.toArray()\n\nfor (const item of enumerable) {\n\tconsole.log(item) // =\u003e 8,6,4,2,2,6\n}\n\nlet chars : IEnumerable\u003cstring\u003e = 'This is a string';\nchars.select(x =\u003e x + ' ').toArray()\n\n```\n\n## Iterable types\n```ts\nString\nArray\nInt8Array\nUint8Array\nUint8ClampedArray\nInt16Array\nUint16Array\nInt32Array\nUint32Array\nFloat32Array\nFloat64Array\nBigInt64Array\nBigUint64Array\nMap\n```\n\n## IEnumerable\n\n```ts\ninterface IEnumerable\u003cT\u003e {\n\n\t/**\n\t * Applies an accumulator function over a sequence. The specified seed value is used as the initial accumulator value.\n\t * @param seed The initial accumulator value.\n\t * @param accumulator An accumulator function to be invoked on each element.\n\t */\n\taggregate\u003cTSeed, TReturn\u003e(\n\t\tseed : TSeed,\n\t\taccumulator : (seed : TSeed, item : T) =\u003e TReturn) : TReturn;\n\n\t/**\n\t * Determines whether all elements of a sequence satisfy a condition.\n\t * @param predicate\n\t */\n\tall(predicate : (item : T) =\u003e boolean) : boolean;\n\n\t/**\n\t * Determines whether a sequence contains any elements.\n\t */\n\tany() : boolean;\n\n\t/**\n\t * Determines whether any element of a sequence satisfies a condition.\n\t * @param predicate A function to test each element for a condition.\n\t */\n\tany(predicate : (item : T) =\u003e boolean) : boolean;\n\n\t/**\n\t * Appends a value to the end of the sequence.\n\t * @param element The value to append to\n\t */\n\tappend(element : T) : IEnumerable\u003cT\u003e;\n\n\t/**\n\t * Returns the input typed as enumerable.\n\t */\n\tasEnumerable() : IEnumerable\u003cT\u003e;\n\n\t/**\n\t * Splits the elements of a sequence into chunks of size at most\n\t * @param size The maximum size of each chunk.\n\t */\n\tchunk(size : number) : IEnumerable\u003cArray\u003cT\u003e\u003e;\n\n\t/**\n\t * Concatenates two sequences.\n\t * @param source The sequence to concatenate to the current.\n\t */\n\tconcat(source : IEnumerable\u003cT\u003e) : IEnumerable\u003cT\u003e;\n\n\t/**\n\t * Determines whether a sequence contains a specified element by using the default equality comparer.\n\t * @param value The value to locate in the sequence.\n\t */\n\tcontains(value : T) : boolean;\n\n\t/**\n\t * Determines whether a sequence contains a specified element by using a specified comparer.\n\t * @param value The value to locate in the sequence.\n\t * @param comparer An equality comparer to compare values.\n\t */\n\tcontains(\n\t\tvalue : T,\n\t\tcomparer? : (left : T, right : T) =\u003e boolean) : boolean;\n\n\t/**\n\t * Returns the number of elements in a sequence.\n\t */\n\tcount() : number;\n\n\t/**\n\t * Returns a number that represents how many elements in the specified sequence satisfy a condition.\n\t * @param predicate A function to test each element for a condition.\n\t */\n\tcount(predicate : (item : T) =\u003e boolean) : number;\n\n\t/**\n\t * Returns distinct elements from a sequence by using the default equality comparer to compare values.\n\t */\n\tdistinct() : IEnumerable\u003cT\u003e;\n\n\t/**\n\t * Returns distinct elements from a sequence by using a specified comparer to compare values.\n\t * @param comparer An comparer to compare values.\n\t */\n\tdistinct(comparer : (left : T, right : T) =\u003e boolean) : IEnumerable\u003cT\u003e;\n\n\t/**\n\t * Returns distinct elements from a sequence according to a specified key selector function.\n\t * @param keySelector A function to extract the key for each element.\n\t */\n\tdistinctBy\u003cTKey\u003e(keySelector : (item : T) =\u003e TKey) : IEnumerable\u003cT\u003e;\n\n\t/**\n\t * Returns distinct elements from a sequence according to a specified key selector function and using a specified\n\t * comparer to compare keys.\n\t * @param keySelector A function to extract the key for each element.\n\t * @param comparer An comparer to compare keys.\n\t */\n\tdistinctBy\u003cTKey\u003e(\n\t\tkeySelector : (item : T) =\u003e TKey,\n\t\tcomparer? : (left : TKey, right : TKey) =\u003e boolean) : IEnumerable\u003cT\u003e;\n\n\t/**\n\t * Returns the element at a specified index in a sequence.\n\t * @param index The zero-based index of the element to retrieve.\n\t */\n\telementAt(index : number) : T;\n\n\t/**\n\t * Returns the element at a specified index in a sequence.\n\t * @param index The index of the element to retrieve, which is either from the beginning or the end of the sequence.\n\t */\n\telementAtOrDefault(index : number) : T | null;\n\n\t/**\n\t * Produces the set difference of two sequences by using the default equality comparer to compare values.\n\t * @param source An array whose elements that also occur in the first sequence will cause those elements to be\n\t * removed from the returned sequence.\n\t */\n\texcept(source : Array\u003cT\u003e | IEnumerable\u003cT\u003e) : IEnumerable\u003cT\u003e;\n\n\t/**\n\t * Produces the set difference of two sequences by using the specified comparer to compare values.\n\t * @param source An array whose elements that also occur in the first sequence will cause those elements to be\n\t * removed from the returned sequence.\n\t * @param comparer An comparer to compare values.\n\t */\n\texcept(\n\t\tsource : Array\u003cT\u003e | IEnumerable\u003cT\u003e,\n\t\tcomparer? : (left : T, right : T) =\u003e boolean) : IEnumerable\u003cT\u003e;\n\n\t/**\n\t * Produces the set difference of two sequences according to a specified key selector function.\n\t * @param source An source whose keys that also occur in the first sequence will cause those elements to be removed\n\t * from the returned sequence.\n\t * @param keySelector A function to extract the key for each element.\n\t */\n\texceptBy\u003cTKey\u003e(\n\t\tsource : Array\u003cT\u003e | IEnumerable\u003cT\u003e,\n\t\tkeySelector : (item : T) =\u003e TKey) : IEnumerable\u003cT\u003e;\n\n\t/**\n\t * Produces the set difference of two sequences according to a specified key selector function.\n\t * @param source An source whose keys that also occur in the first sequence will cause those elements to be removed\n\t * from the returned sequence.\n\t * @param keySelector A function to extract the key for each element.\n\t * @param comparer The comparer to compare values.\n\t */\n\texceptBy\u003cTKey\u003e(\n\t\tsource : Array\u003cT\u003e | IEnumerable\u003cT\u003e,\n\t\tkeySelector : (item : T) =\u003e TKey,\n\t\tcomparer? : (left : TKey, right : TKey) =\u003e boolean) : IEnumerable\u003cT\u003e;\n\n\t/**\n\t * Returns the first element of a sequence.\n\t */\n\tfirst() : T;\n\n\t/**\n\t * Returns the first element in a sequence that satisfies a specified condition.\n\t * @param predicate A function to test each element for a condition.\n\t */\n\tfirst(predicate : (item : T) =\u003e boolean) : T;\n\n\t/**\n\t * Returns the first element of a sequence, or a default value if the sequence contains no elements.\n\t */\n\tfirstOrDefault() : T | null;\n\n\t/**\n\t * Returns the first element of a sequence, or a specified default value if the sequence contains no elements.\n\t * @param defaultValue The default value to return if the sequence is empty.\n\t */\n\tfirstOrDefault(defaultValue : T) : T | null;\n\n\t/**\n\t * Returns the first element of a sequence, or a default value if the sequence contains no elements.\n\t * @param predicate A function to test each element for a condition.\n\t */\n\tfirstOrDefault(predicate : (item : T) =\u003e boolean) : T | null;\n\n\t/**\n\t * Returns the first element of the sequence that satisfies a condition, or a specified default value if no such element is found.\n\t * @param predicate A function to test each element for a condition.\n\t * @param defaultValue The default value to return if the sequence is empty.\n\t */\n\tfirstOrDefault(\n\t\tpredicate : (item : T) =\u003e boolean,\n\t\tdefaultValue : T) : T | null;\n\n\t/**\n\t * Groups the elements of a sequence according to a specified key selector function.\n\t * @param keySelector A function to extract the key for each element.\n\t */\n\tgroupBy\u003cTKey\u003e(keySelector : (item : T) =\u003e TKey) : IEnumerable\u003cArray\u003cT\u003e \u0026 { key : TKey }\u003e;\n\n\t/**\n\t * Groups the elements of a sequence according to a specified key selector function and compares the keys by using a specified comparer.\n\t * @param keySelector A function to extract the key for each element.\n\t * @param comparer An comparer to compare keys.\n\t */\n\tgroupBy\u003cTKey\u003e(\n\t\tkeySelector : (item : T) =\u003e TKey,\n\t\tcomparer : (left : TKey, right : TKey) =\u003e boolean) : IEnumerable\u003cArray\u003cT\u003e \u0026 { key : TKey }\u003e;\n\n\t/**\n\t * Groups the elements of a sequence according to a specified key selector function and projects the elements for\n\t * each group by using a specified function.\n\t * @param keySelector A function to extract the key for each element.\n\t * @param elementSelector A function to map each source element to an element in the source.\n\t */\n\tgroupBy\u003cTKey, TElement\u003e(\n\t\tkeySelector : (item : T) =\u003e TKey,\n\t\telementSelector : (item : T) =\u003e TElement) : IEnumerable\u003cArray\u003cTElement\u003e \u0026 { key : TKey }\u003e;\n\n\t/**\n\t * Groups the elements of a sequence according to a key selector function. The keys are compared by using a comparer\n\t * and each group's elements are projected by using a specified function.\n\t * @param keySelector A function to extract the key for each element.\n\t * @param elementSelector A function to map each source element to an element in the source.\n\t * @param comparer An comparer to compare keys.\n\t */\n\tgroupBy\u003cTKey, TElement\u003e(\n\t\tkeySelector : (item : T) =\u003e TKey,\n\t\telementSelector : (item : T) =\u003e TElement,\n\t\tcomparer : (left : TKey, right : TKey) =\u003e boolean) : IEnumerable\u003cArray\u003cTElement\u003e \u0026 { key : TKey }\u003e;\n\n\t/**\n\t * Returns the last element of a sequence.\n\t */\n\tlast() : T;\n\n\t/**\n\t * Returns the last element of a sequence that satisfies a specified condition.\n\t * @param predicate A function to test each element for a condition.\n\t */\n\tlast(predicate : (item : T) =\u003e boolean) : T;\n\n\t/**\n\t * Returns the last element of a sequence, or a default value if the sequence contains no elements.\n\t */\n\tlastOrDefault() : T | null;\n\n\t/**\n\t * Returns the last element of a sequence, or a specified default value if the sequence contains no elements.\n\t * @param defaultValue The default value to return if the sequence is empty.\n\t */\n\tlastOrDefault(defaultValue : T) : T | null;\n\n\t/**\n\t * Returns the last element of a sequence that satisfies a condition or a default value if no such element is found.\n\t * @param predicate A function to test each element for a condition.\n\t */\n\tlastOrDefault(predicate : (item : T) =\u003e boolean) : T | null;\n\n\t/**\n\t * Returns the last element of a sequence that satisfies a condition, or a specified default value if no such element is found.\n\t * @param predicate A function to test each element for a condition.\n\t * @param defaultValue The default value to return if the sequence is empty.\n\t */\n\tlastOrDefault(\n\t\tpredicate : (item : T) =\u003e boolean,\n\t\tdefaultValue : T) : T | null;\n\n\t/**\n\t * Sorts the elements of a sequence in ascending order.\n\t */\n\torder() : IEnumerable\u003cT\u003e;\n\n\t/**\n\t * Sorts the elements of a sequence in ascending order.\n\t * @param comparer An comparer to compare keys.\n\t */\n\torder(comparer : (current : T, exist : T) =\u003e number) : IEnumerable\u003cT\u003e;\n\n\t/**\n\t * Sorts the elements of a sequence in ascending order according to a key.\n\t * @param keySelector A function to extract a key from an element.\n\t */\n\torderBy\u003cTKey\u003e(keySelector : (item : T) =\u003e TKey) : IEnumerable\u003cT\u003e;\n\n\t/**\n\t * Sorts the elements of a sequence in ascending order according to a key.\n\t * @param keySelector A function to extract a key from an element.\n\t * @param comparer An comparer to compare keys.\n\t */\n\torderBy\u003cTKey\u003e(\n\t\tkeySelector : (item : T) =\u003e TKey,\n\t\tcomparer : (current : TKey, exist : TKey) =\u003e number) : IEnumerable\u003cT\u003e;\n\n\t/**\n\t * Sorts the elements of a sequence in descending order.\n\t */\n\torderDescending() : IEnumerable\u003cT\u003e;\n\n\t/**\n\t * Sorts the elements of a sequence in descending order.\n\t * @param comparer An comparer to compare keys.\n\t */\n\torderDescending(comparer : (current : T, exist : T) =\u003e number) : IEnumerable\u003cT\u003e;\n\n\t/**\n\t * Sorts the elements of a sequence in descending order according to a key.\n\t * @param keySelector A function to extract a key from an element.\n\t */\n\torderByDescending\u003cTKey\u003e(keySelector : (item : T) =\u003e TKey) : IEnumerable\u003cT\u003e;\n\n\t/**\n\t * Sorts the elements of a sequence in descending order according to a key.\n\t * @param keySelector A function to extract a key from an element.\n\t * @param comparer An comparer to compare keys.\n\t */\n\torderByDescending\u003cTKey\u003e(\n\t\tkeySelector : (item : T) =\u003e TKey,\n\t\tcomparer : (current : TKey, exist : TKey) =\u003e number) : IEnumerable\u003cT\u003e;\n\n\t/**\n\t * Adds a value to the beginning of the sequence.\n\t * @param element The value to prepend to\n\t */\n\tprepend(element : T) : IEnumerable\u003cT\u003e;\n\n\t/**\n\t * Inverts the order of the elements in a sequence.\n\t */\n\treverse() : IEnumerable\u003cT\u003e;\n\n\t/**\n\t * Projects each element of a sequence into a new form by incorporating the element's index.\n\t * @param selector A transform function to apply to each element.\n\t */\n\tselect\u003cTReturn\u003e(selector : ((item : T) =\u003e TReturn) | ((item : T, index : number) =\u003e TReturn))\n\t\t: IEnumerable\u003cTReturn\u003e;\n\n\t/**\n\t * Projects each element of a sequence to an array and flattens the resulting sequences into one sequence.\n\t * @param selector A transform function to apply to each element.\n\t */\n\tselectMany\u003cTReturn\u003e(selector : (item : T) =\u003e IEnumerable\u003cTReturn\u003e) : IEnumerable\u003cTReturn\u003e;\n\n\t/**\n\t * Returns the only element of a sequence that satisfies a specified condition, and throws an exception if more than\n\t * one such element exists.\n\t */\n\tsingle() : T;\n\n\t/**\n\t * Returns the only element of a sequence that satisfies a specified condition, and throws an exception if more than\n\t * one such element exists.\n\t * @param predicate A function to test an element for a condition.\n\t */\n\tsingle(predicate : (item : T) =\u003e boolean) : T;\n\n\t/**\n\t * Returns the only element of a sequence, or a default value if the sequence is empty; this method throws an exception\n\t * if there is more than one element in the sequence.\n\t */\n\tsingleOrDefault() : T | null;\n\n\t/**\n\t * Returns the only element of a sequence, or a specified default value if the sequence is empty; this method throws\n\t * an exception if there is more than one element in the sequence.\n\t * @param defaultValue The default value to return if the sequence is empty.\n\t */\n\tsingleOrDefault(defaultValue : T) : T | null;\n\n\t/**\n\t * Returns the only element of a sequence, or a specified default value if the sequence is empty; this method throws\n\t * an exception if there is more than one element in the sequence.\n\t * @param predicate A function to test an element for a condition.\n\t */\n\tsingleOrDefault(predicate : (item : T) =\u003e boolean) : T | null;\n\n\t/**\n\t * Returns the only element of a sequence that satisfies a specified condition, or a specified default value if no\n\t * such element exists; this method throws an exception if more than one element satisfies the condition.\n\t * @param predicate A function to test an element for a condition.\n\t * @param defaultValue The default value to return if the sequence is empty.\n\t */\n\tsingleOrDefault(\n\t\tpredicate : (item : T) =\u003e boolean,\n\t\tdefaultValue : T) : T | null;\n\n\t/**\n\t * Bypasses a specified number of elements in a sequence and then returns the remaining elements.\n\t * @param count The number of elements to skip before returning the remaining elements.\n\t */\n\tskip(count : number) : IEnumerable\u003cT\u003e;\n\n\t/**\n\t * Returns a new enumerable collection that contains the elements from source with the last count elements of the\n\t * source collection omitted.\n\t * @param count The number of elements to omit from the end of the collection.\n\t */\n\tskipLast(count : number) : IEnumerable\u003cT\u003e;\n\n\t/**\n\t * Bypasses elements in a sequence as long as a specified condition is true and then returns the remaining elements.\n\t * @param predicate A function to test each element for a condition.\n\t */\n\tskipWhile(predicate : (item : T) =\u003e boolean) : IEnumerable\u003cT\u003e;\n\n\t/**\n\t * Returns a specified number of contiguous elements from the start of a sequence.\n\t * @param count The number of elements to return\n\t */\n\ttake(count : number) : IEnumerable\u003cT\u003e;\n\n\t/**\n\t * Returns a specified number of contiguous elements from the start of a sequence.\n\t * @param range The range of elements to return, which has start and end indexes either from the beginning or the\n\t * end of the sequence.\n\t */\n\ttake(range : [start : number, end : number]) : IEnumerable\u003cT\u003e;\n\n\t/**\n\t * Returns a new enumerable collection that contains the last count elements from source.\n\t * @param count The number of elements to take from the end of the collection.\n\t */\n\ttakeLast(count : number) : IEnumerable\u003cT\u003e;\n\n\t/**\n\t * Returns elements from a sequence as long as a specified condition is true.\n\t * @param predicate A function to test each element for a condition.\n\t */\n\ttakeWhile(predicate : ((item : T) =\u003e boolean) | ((item : T, index : number) =\u003e boolean)) : IEnumerable\u003cT\u003e;\n\n\t/**\n\t * Creates an array from an enumerable.\n\t */\n\ttoArray() : Array\u003cT\u003e;\n\n\t/**\n\t * Creates a Map from an enumerable according to specified key selector and element selector functions.\n\t * @param keySelector A function to extract a key from each element.\n\t * @param valueSelector A transform function to produce a result element value from each element.\n\t */\n\ttoDictionary\u003cK, V\u003e(keySelector : (item : T) =\u003e K, valueSelector : (item : T) =\u003e V) : Map\u003cK, V\u003e;\n\n\t/**\n\t * Produces the set union of two sequences by using a specified comparer.\n\t * @param source An enumerable whose distinct elements form the second set for the union.\n\t * @param comparer The comparer to compare values.\n\t */\n\tunion(source : Array\u003cT\u003e, comparer? : (left : T, right : T) =\u003e boolean) : IEnumerable\u003cT\u003e;\n\n\t/**\n\t * Produces the set union of two sequences according to a specified key selector function.\n\t * @param source An enumerable whose distinct elements form the second set for the union.\n\t * @param keySelector A function to extract the key for each element.\n\t * @param comparer The comparer to compare values.\n\t */\n\tunionBy\u003cTKey\u003e(\n\t\tsource : Array\u003cT\u003e, keySelector : (item : T) =\u003e TKey,\n\t\tcomparer? : (left : TKey, right : TKey) =\u003e boolean) : IEnumerable\u003cT\u003e;\n\n\t/**\n\t * Filters a sequence of values based on a predicate. Each element's index is used in the logic of the predicate function.\n\t * @param predicate A function to test each source element for a condition; the second parameter of the function\n\t * represents the index of the source element.\n\t */\n\twhere(predicate : ((item : T) =\u003e boolean) | ((item : T, index : number) =\u003e boolean)) : IEnumerable\u003cT\u003e;\n}\n\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffeast107%2Flinqes","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffeast107%2Flinqes","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffeast107%2Flinqes/lists"}