Simón, miembro de nuestro staff, nos hizo el favor de escribir esta crónica ya que conoce muy bien dicho tema.
Solución:
Puedes usar ToLookup
método de extensión de la siguiente manera:
List items = new List new Foo Name="A",Condition=true,new Foo Name = "B", Condition = true ,new Foo Name = "C", Condition = false ;
var lookupItems = items.ToLookup(item => item.Condition);
var lstTrueItems = lookupItems[true];
var lstFalseItems = lookupItems[false];
GroupBy
y Single
debería lograr lo que estás buscando:
var groups = events.GroupBy(e => e.Closer_User_ID == null).ToList(); // As others mentioned this needs to be materialized to prevent `events` from being iterated twice.
var openEvents = groups.SingleOrDefault(grp => grp.Key == true)?.ToList() ?? new List();
var closedEvents = groups.SingleOrDefault(grp => grp.Key == false)?.ToList() ?? new List();
Solución de una línea usando ForEach
método de List
:
List events = GetAllEvents();
List openEvents = new List();
List closedEvents = new List();
events.ForEach(x => (x.Closer_User_ID == null ? openEvents : closedEvents).Add(x));
Acuérdate de que tienes el privilegio valorar este enunciado .
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)