No he usado muchas expresiones lambda antes y me encontré con un caso en el que pensé que podría usar hábilmente uno. Tengo una lista personalizada de ~ 19,000 registros y necesito averiguar si existe o no un registro en la lista, así que en lugar de escribir un montón de loops o usar linq para revisar la lista decidí probar esto:C# Velocidad de expresión lambda
for (int i = MinX; i <= MaxX; ++i)
{
tempY = MinY;
while (tempY <= MaxY)
{
bool exists = myList.Exists(item => item.XCoord == i && item.YCoord == tempY);
++tempY;
}
}
El único problema es que tarda ~ 9 - 11 segundos en ejecutarse. ¿Estoy haciendo algo mal es solo un caso en el que no debería estar usando una expresión como esta?
Gracias.
EDIT: Lo siento. Debo elaborar. Estoy creando una lista de registros con el ciclo for y while y comprobando si ese registro existe en myList. Esa es la única forma en que podría pensar en hacerlo. Lo volveré a evaluar y veré con qué vengo.
¿Por qué esperas que sea rápido? Es una búsqueda anidada sin ningún tipo de indexación u orden. –
No creo que el voto a la baja sea necesario. Es un problema interesante, aunque mal redactado. – kervin
¿Por qué el bucle externo es un bucle, pero el bucle interno es un bucle while? – Ponkadoodle