I was working on some old code which created three DropDown controls with hours, minutes and seconds.
This was the original code:
for (var i = 0; i < 24; i++) { Hour.Items.Add(new ListItem(i.ToString())); } for (var i = 0; i < 60; i++) { Minute.Items.Add(new ListItem(i.ToString())); Second.Items.Add(new ListItem(i.ToString())); }
I wanted to "LINQify" this code using the LINQ range method:
Enumerable.Range(int start, int count)
This returns an IEnumerable<int>
collection with the corresponding range of values. So, my DropDown controls are now created with the following code:
Hour.Items.AddRange(Enumerable.Range(0, 24).Select(i => new ListItem(i.ToString())).ToArray()); Minute.Items.AddRange(Enumerable.Range(0, 60).Select(i => new ListItem(i.ToString())).ToArray()); Second.Items.AddRange(Enumerable.Range(0, 60).Select(i => new ListItem(i.ToString())).ToArray());
This could be optimized by using a variable for the sixty values which could be used twice.