Returning a Distinct list of values from an array or IEnumerable collection
I recently had a list of Guids in a string which was returned from a group of checkboxes with identical names. I wanted to itterate through Guids and process each one only once. Basicaly, ignoring duplicates.
I didn't have to look very far before I discovered the .Distinct() method. See example below:
string[] allAnimals =
"cat,dog,mouse,chicken,cat,dog,elephant,mouse".Split(",".ToCharArray());
foreach (string animal in allAnimals.Distinct())
{
Console.WriteLine(animal);
}
Console.ReadLine();
The output?
cat
dog
mouse
chicken
elephant
This triggered me to look at some of the other IEnumerable methods I'd ignored. My favourites so far are:
.Take(int)
.Skip(int)
.Reverse()
| Author |
: Paul Hayman |
| Published |
: Wednesday, 20 February, 2008 |
Paul is the COO of kwiboo ltd consultant and has more than a decade of IT consultancy experience. He has consulted for a number of blue chip companies and has been exposed to the folowing sectors: Utilities, Telecommunications, Insurance, Media, Investment Banking, Leisure, Legal, CRM, Pharmaceuticals, Interactive Gaming, Mobile Communications, Online Services.
Paul is the COO and co-founder of kwiboo (http://www.kwiboo.com/) and is also the creator of GeekZilla.