{"id":22065615,"url":"https://github.com/karenpayneoregon/indices-ranges-csharp","last_synced_at":"2026-05-18T03:02:42.077Z","repository":{"id":203137536,"uuid":"708538493","full_name":"karenpayneoregon/indices-ranges-csharp","owner":"karenpayneoregon","description":"Simple indices and range code samples","archived":false,"fork":false,"pushed_at":"2023-10-23T17:08:20.000Z","size":38,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-29T00:28:50.512Z","etag":null,"topics":["csharpcore"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/karenpayneoregon.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2023-10-22T21:02:15.000Z","updated_at":"2023-10-22T21:07:16.000Z","dependencies_parsed_at":null,"dependency_job_id":"2a6f0d7b-0672-4a76-9a0d-7eb7d2de65e0","html_url":"https://github.com/karenpayneoregon/indices-ranges-csharp","commit_stats":null,"previous_names":["karenpayneoregon/indices-ranges-csharp"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/karenpayneoregon%2Findices-ranges-csharp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/karenpayneoregon%2Findices-ranges-csharp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/karenpayneoregon%2Findices-ranges-csharp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/karenpayneoregon%2Findices-ranges-csharp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/karenpayneoregon","download_url":"https://codeload.github.com/karenpayneoregon/indices-ranges-csharp/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245144978,"owners_count":20568056,"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":["csharpcore"],"created_at":"2024-11-30T19:20:57.142Z","updated_at":"2025-10-09T21:16:13.816Z","avatar_url":"https://github.com/karenpayneoregon.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# About\n\nCode samples for [Indices and ranges](https://learn.microsoft.com/en-us/dotnet/csharp/tutorials/ranges-indexes). More samples to follow.\n\n![screen shot](assets/figure1.png)\n\nExample code for above\n\n```csharp\nprivate static void MonthsIndexing()\n{\n    Print();\n\n    List\u003cElementContainer\u003cstring\u003e\u003e monthContainer = RangeDetails(MonthNames());\n    foreach (var item in monthContainer)\n    {\n        Console.WriteLine($\"{item.Value,-10}{item.Index,-4}{item.EndIndex}\");\n    }\n}\nprivate static void PersonIndexing()\n{\n    Print();\n    List\u003cPerson\u003e people = new()\n    {\n        new() { Id = 1, FirstName = \"Jim\", LastName = \"Gallagher\"},\n        new () { Id = 2, FirstName = \"Clare\", LastName = \"Gallagher\"},\n        new () { Id = 3, FirstName = \"Mary\", LastName = \"Gallagher\"}\n    };\n\n    var personContainer = RangeDetails(people);\n    Console.WriteLine($\"Id  Person                    Index  Start  End\");\n    foreach (var item in personContainer)\n    {\n        Console.WriteLine($\"{item.Value,-10} {item.Index,-4} {item.StartIndex,3} {item.EndIndex,7}\");\n    }\n}\n```\n\nClass to get indices\n\n```csharp\nclass Helpers\n{\n    public static List\u003cElementContainer\u003cT\u003e\u003e RangeDetails\u003cT\u003e(List\u003cT\u003e list) =\u003e\n        list.Select((element, index) =\u003e new ElementContainer\u003cT\u003e\n        {\n            Value = element,\n            StartIndex = new Index(index),\n            EndIndex = new Index(Enumerable.Range(0, list.Count).Reverse().ToList()[index], true),\n            Index = index + 1\n        }).ToList();\n}\n```\n\nModel\n\n```csharp\npublic class ElementContainer\u003cT\u003e\n{\n    public T Value { get; set; }\n    public Index StartIndex { get; set; }\n    public Index EndIndex { get; set; }\n    public int Index { get; set; }\n    public override string ToString() =\u003e $\"{Index,-5:D2}{Value}\";\n}\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkarenpayneoregon%2Findices-ranges-csharp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkarenpayneoregon%2Findices-ranges-csharp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkarenpayneoregon%2Findices-ranges-csharp/lists"}