tags:

views:

72

answers:

1

Hi there.
I have two generic list objects, in which one contains ids and and ordering, and the other a bunch of ids with each id in the second list having an id reference to the first list, for example;

    public class OptionType
    {
        public int ID { get; set; }
        public int Ordering { get; set; }
    }

    public class Option
    {
        public int ID { get; set; }
        public int Type_ID { get; set; }
    }   

Obviously I can do a simple sort on a list of OptionTypes by doing

    types_list.OrderBy(x=>x.Ordering);

Question is though, how could I go about ordering an 'options_list' by utilising the 'Type_ID' on the object which would relate to the ordering of the types_list. As in something like (obviously this isn't valid - but hopefully you will get the idea!)

options_list.OrderBy(x=>x.Type_ID == types_list.OrderBy(e=>e.Ordering));

Thanks a lot
Dan

+3  A: 

You should be able to use a join to produce your desired output. Example using query syntax.

var orderedOptions = from option in options_list
                     join type in types_list
                     on option.Type_ID equals type.ID
                     order by type.Ordering
                     select option;
Anthony Pegram
Bang on the money, perfect. Thanks a lot Anthony
danrichardson