Tengo una lista de proyectos y si selecciono un proyecto, daré una opción anterior y siguiente. He agregado un ejemplo de código rápido, pero espero que haya una forma mejor/más rápida de hacerlo, por ejemplo, 500 proyectos.¿Cómo obtener el artículo antes de la corriente y después del actual en una lista con Linq/C#?
¿Existe tal vez una opción de linq o algo así?
He comprobado el enumarator pero eso solo tiene un movimiento. Next en no puede establecer la corriente.
Ejemplo rápido:
proyectos es un diccionario de proyecto
es un KeyValuePair que existe en el diccionario
var match = false;
var save = new KeyValuePair<ExtendedProjectLightPlan, Page>();
var before = new KeyValuePair<ExtendedProjectLightPlan, Page>();
var after = new KeyValuePair<ExtendedProjectLightPlan, Page>();
foreach (var p in projects)
{
before = save;
save = p;
if (match)
{
after = p;
break;
}
if (p.Key.Id == project.Key.Id)
{
match = true;
}
}
Mi culpa, me refiero a un diccionario. Editado el ejemplo ya – Marco
Con este código obtendrá una excepción si el artículo es el primer elemento, es decir, en el índice 0 o el último. –
@Marco: ¿Qué significa antes y después en un diccionario? ¿Estás usando un ['SortedDictionary'] (http://msdn.microsoft.com/en-us/library/f7fta44c.aspx)? –