Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

Linq C# OrderBy

Îåêßíçóå áðü ôï ìÝëïò StrouMfios. Τελευταία δημοσίευση από το μέλος StrouMfios στις 13-04-2010, 11:25. Υπάρχουν 3 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  08-04-2010, 12:25 57991

    Linq C# OrderBy

    Καλησπέρα και Χρόνια Πολλά,

    έχω ενα object στο οποίο θέλω να κάνω sorting με linq.

    To σχήμα του object έχει ώς εξής.

    public class cHotel {
            public string HotelID { get; set; }
            public string Title { get; set; }
            public IList<Room> Rooms { get; set; }
        }
    
    public class Room {
            public string RoomID { get; set; }
            public string RoomTitle { get; set; }      
            public double Price_R1 { get; set; }
            public double Price_R2 { get; set; }
            public double Price_R3 { get; set; }
        }
    Έχω ενα IList<cHotel> με 10 items και το κάθε item έχει ενα IList<Room>.
    Θέλω σαν επιστροφή IList<cHotel> και να είναι OrderBy(Room=>Room.Price_R1).

    Προσπάθησα διάφορους τρόπους αλλα χωρίς επιτυχία.

    αυτό είναι μια απο τις αποτυχημένες προσπάθειες, το οποίο επιστρέφει μια άδεια λιστα με 10 items.
    var roo = (newHotelList
    .Select(ro => ro.Rooms.OfType<Room>().OrderBy(r => r.Price_R1)))
    .Select(h => h.OfType<cHotel>()).ToList();

    Θα χαιρόμουν αν μπορούσε κάποιος να με βοηθήσει σε αυτό.

    Ευχαριστώ

    αν δεν το θες, www.antallakseto.gr
  •  08-04-2010, 19:54 58000 σε απάντηση της 57991

    Απ: Linq C# OrderBy

    Μήπως

    cHotelList.ForEach(hotel => hotel.Rooms.OrderBy(room => room.Price_R1));

    Δες το κάπως έτσι...



  •  13-04-2010, 10:11 58068 σε απάντηση της 57991

    Απ: Linq C# OrderBy

    Μήπως κάτι τέτοιο?


    IQueryable<CITEM> mItems = GlobalClass.dbContext.CITEMs;
    
    mItems = mItems.OrderBy(Room=>Room.Price_R1);
    
    var output = (from p in mItems
    		select p);

  •  13-04-2010, 11:25 58070 σε απάντηση της 58000

    Απ: Linq C# OrderBy

    Τάσκος Γιώργος:

    Μήπως

    cHotelList.ForEach(hotel => hotel.Rooms.OrderBy(room => room.Price_R1));

    Δες το κάπως έτσι...


    Αυτο θα κάνει sort  την λίστα των rooms στο hotel.
    Είναι ένα κομμάτι του sorting αλλα παράλληλα θέλω να γίνει sorting και των Hotels βάση των τιμών των δωματίων.

    Για την ώρα το λεχω λύσει με "μπακάλικο" τρόπο, βάζοντας ακόμα ενα property στο Hotel με όνομα price(το πρώτο price απο τα ταξινομημένα δωμάτια)
    και κατόπιν το κανω order by price.



    αν δεν το θες, www.antallakseto.gr
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems