Stworzyłem funkcję filtrowania i sortowania zawartości listy.Połączyć wiele instrukcji Linq Where
Wydaje się nieco "bitty", jednak Linq nie jest mocnym punktem. Zastanawiam się, czy funkcja może być usprawniona, czy to z perspektywy wydajności, czy nawet z perspektywy estetycznej.
Oto kod:
// Deserialise XML utworzyć klasę aktywnych wierszy
var agents = XmlHelper
.Deserialise<AgentConfigs>("~/Pingtree.xml")
.Agents
.Where(x => x.IsActive == true);
// Po pierwsze - uzyskać środki 'bezpośrednia' i zamówić je
var direct = agents
.Where(x => x.IsDirect)
.OrderByDescending(x => x.MinPrice);
// Po drugie - uzyskaj pośredników i zamów je
var agency = agents
.Where(x => !x.IsDirect)
.OrderBy(x => x.Priority);
// rygla 2 na listach podrzędnych razem, zachowując kolejność
Agents = direct.Concat(agency).ToList();
wszelkie myśli o tym, jak można to poprawić?
Shopuld prawdopodobnie przejdź do http://codereview.stackexchange.com/ – HimBromBeere
Jeśli rozwiązanie działa dobrze, a chcesz poprawić/przeglądu, w jaki sposób można go lepiej skonstruować, opublikuj na http://stackoverflow.com/review –
Po pierwsze, powtarzaj te same wyliczenia wiele razy, które są oznaczone przez Resharper np. Może to spowodować problemy z wydajnością i można go łatwo uniknąć, wywołując '.ToList' na agentach przed wykonaniem dalszych zapytań. – HimBromBeere