Skip to main content

Sorting an ICollection

Have you ever wanted to sort an ICollection? It took me awhile to figure this one out so I thought I should blog it.

I originally posted this quite awhile ago. Since then I have discovered a much easier way to sort a collection.
Here's an update on sorting collections using LINQ. Much simpler:
 
            var orderedList = customer.Users
            .OrderBy(x => x.UserType)
            .ToList();

And here is my original post on the subject. You decide which one looks easier.
 
private IList<EventReqFormSection> GetSections()
{
ICollection<EventReqFormSection> sections = EventReqFormSection.GetByEventReqFormId(_businessObject.Id, ObjectManager);

// sort by Display Sequence
List<EventReqFormSection> sortedValues = new List<EventReqFormSection>(sections);
sortedValues.Sort(new EventReqFormSection.DisplaySequenceSort());

return sortedValues;
}


The above function retrieves an ICollection puts it into a List object and calls the sort method using an IComparer Object which is a child object of . defined as follows:

 
public class DisplaySequenceSort : IComparer<EventReqFormSection>
{
public int Compare(EventReqFormSection x, EventReqFormSection y)
{
if (x == null)
throw new ArgumentNullException("x");
if (y == null)
throw new ArgumentNullException("y");

return x.DisplaySequence.CompareTo(y.DisplaySequence);
}
}

Comments

  1. OMG... Sooo much easier these days with LINQ.

    ReplyDelete
  2. Cool and that i have a keen give: House Renovation What To Do First home remodel cost

    ReplyDelete

Post a Comment

Popular posts from this blog

This blog is complete rubbish. Who knew the blogger release was going to fubar my blog so badly? Sigh... Well. I did kind of ignore this for about the last 4 years so it's my fault. I don't know if I have the energy to try repair my previous posts, or if I should just delete them all and start fresh?

Viewing the contents of an Oracle cursor in Toad

Prefix your cursor variable with a colon ":" begin event_api.get_activity_data(1, null,'2013', null, null, null,:pResultSet); end; Toad will prompt you for the type. Select CURSOR And voila! You will have the cursor dumped into a data grid within Toad!