{"id":15814247,"url":"https://github.com/thzinc/destructureextensions","last_synced_at":"2025-05-07T23:20:19.226Z","repository":{"id":65414123,"uuid":"105171303","full_name":"thzinc/DestructureExtensions","owner":"thzinc","description":"Destructuring extension methods for awesome C#","archived":false,"fork":false,"pushed_at":"2019-02-09T01:57:02.000Z","size":16,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-05-05T21:14:33.756Z","etag":null,"topics":["csharp","csharp7","destructure","destructuring","language-features","nuget","sugar"],"latest_commit_sha":null,"homepage":null,"language":"C#","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/thzinc.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null}},"created_at":"2017-09-28T16:21:00.000Z","updated_at":"2022-10-27T04:12:33.000Z","dependencies_parsed_at":"2023-01-22T09:55:10.510Z","dependency_job_id":null,"html_url":"https://github.com/thzinc/DestructureExtensions","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thzinc%2FDestructureExtensions","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thzinc%2FDestructureExtensions/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thzinc%2FDestructureExtensions/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thzinc%2FDestructureExtensions/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/thzinc","download_url":"https://codeload.github.com/thzinc/DestructureExtensions/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252968732,"owners_count":21833347,"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":["csharp","csharp7","destructure","destructuring","language-features","nuget","sugar"],"created_at":"2024-10-05T04:23:49.789Z","updated_at":"2025-05-07T23:20:19.206Z","avatar_url":"https://github.com/thzinc.png","language":"C#","readme":"# DestructureExtensions\n\nDestructuring extension methods for awesome C#\n\n## Quickstart\n\nIn C# 7.0:\n\n```csharp\nusing DestructureExtensions;\n\n/*...*/\nvar stringToSplit = \"foo,bar,bam,baz\";\nvar (first, _, third, rest) = stringToSplit.Split(',');\n\n// first == \"foo\"\n// third == \"bam\"\n// rest == IEnumerable\u003cstring\u003e containing \"baz\"\n\nvar one = Task.FromResult(1);\nvar two = Task.FromResult(\"foo\");\nvar three = Task.FromResult(DateTimeOffset.Now);\n\nvar (first, second, third) = await (one, two, three).WhenAll();\n\nvar tasks = Enumerable.Range(1, 10).Select(Task.FromResult);\nvar results = await tasks.WhenAll();\n\nvar dictionary = new Dictionary\u003cstring, int\u003e()\n{\n    { \"one\", 1 },\n    { \"two\", 2 },\n    { \"three\", 3 },\n}\nforeach (var (key, value) in dictionary)\n{\n    // ...\n}\n```\n\nMore examples in the [unit tests](./tests/DestructureExtensions.Tests).\n\n## Building\n\n[![Travis](https://img.shields.io/travis/thzinc/DestructureExtensions.svg)](https://travis-ci.org/thzinc/DestructureExtensions)\n[![NuGet](https://img.shields.io/nuget/v/DestructureExtensions.svg)](https://www.nuget.org/packages/DestructureExtensions/)\n\nEnsure you have [installed .NET Core](https://www.microsoft.com/net/core)\n\nTo build a local/development NuGet package, run the following:\n\n```bash\ndotnet restore\ndotnet build\ndotnet pack\n```\n\nThis will produce `bin/Debug/DestructureExtensions.0.0.0.nupkg`.\n\n## Code of Conduct\n\nWe are committed to fostering an open and welcoming environment. Please read our [code of conduct](CODE_OF_CONDUCT.md) before participating in or contributing to this project.\n\n## Contributing\n\nWe welcome contributions and collaboration on this project. Please read our [contributor's guide](CONTRIBUTING.md) to understand how best to work with us.\n\n## License and Authors\n\n[![Daniel James logo](https://secure.gravatar.com/avatar/eaeac922b9f3cc9fd18cb9629b9e79f6.png?size=16) Daniel James](https://thzinc.com)\n\n[![license](https://img.shields.io/github/license/thzinc/DestructureExtensions.svg)](https://github.com/thzinc/DestructureExtensions/blob/master/LICENSE)\n[![GitHub contributors](https://img.shields.io/github/contributors/thzinc/DestructureExtensions.svg)](https://github.com/thzinc/DestructureExtensions/graphs/contributors)\n\nThis software is made available by Daniel James under the MIT license.","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthzinc%2Fdestructureextensions","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthzinc%2Fdestructureextensions","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthzinc%2Fdestructureextensions/lists"}