Estoy tratando de encontrar la forma más eficiente de clasificar los gastos en un software de contabilidad. Los valores vienen así:
"EFTPOS Kathmandu 2342342"
He creado un método de la siguiente manera:
private static string Classifier(string inputDescription)
{
Dictionary<string, string> classified = new Dictionary<string, string>();
classified.Add("D/C FROM", "INCOME" );
classified.Add("CREDIT ATM", "INCOME");
classified.Add("INTEREST", "INCOME");
classified.Add("EFTPOS", "EXPENSE" );
classified.Add("DEBIT DEBIT", "EXPENSE");
classified.Add("CC DEBIT", "EXPENSE");
classified.Add("PAYMENT RECEIVED", "TRANSFER");
classified.Add("PAYMENT - THANK YOU", "TRANSFER");
classified.Add("IRD", "TAX" );
classified.Add("I.R.D", "TAX");
try
{
// What do I do here to get the value?
return value;
}
catch(Exception)
{
return "OTHER";
}
}
Básicamente, quiero analizar los valores de mi inputDescription con las claves en el diccionario para obtener su valor (la clasificación del artículo de línea).
Entonces, para el ejemplo que se muestra arriba, el resultado sería "GASTOS".
Asumí que el diccionario sería la forma más rápida de abordar esto, pero estoy abierto a sugerencias sobre mejores métodos.
¡Gracias de antemano!
¿Qué pasa con el uso de RegEx?
const string EXPENSE_PATTERN = "^(EFTPOS|DEBIT DEBIT|CC DEBIT)"
const string ..._PATTERN
if (Regex.IsMatch(input, EXPENSE_PATTERN)){
return "EXPENSE";
} else if (Regex.IsMatch(input, INCOME_PATTERN)){
return "INCOME";
} else if (Regex.IsMatch(input, ..._PATTERN)){
return "...";
} else {
return "OTHER"
}
Este artículo se recopila de Internet, indique la fuente cuando se vuelva a imprimir.
En caso de infracción, por favor [email protected] Eliminar
Déjame decir algunas palabras