Ich habe 6 Eigenschaften:zwei Strings vergleichen und prüfen Sie den geänderten Wert in einem Bereich enthalten
oldprop1,oldprop2,oldprop3
newprop1,newprop2,newprop3
ich prüfen werde, wenn der Wert geändert. Wenn es sich in einer bestimmten Kombination von Möglichkeiten geändert hat, dann möchte ich es protokollieren.
Wenn diese fünf Änderungen passieren, dann sollte es protokolliert werden:
P to Y
P to N
blank to Y -- here blank means ""
blank to N
N to Y
Was ich jetzt tue
if (!oldprop1.Trim().Equals(newprop1.Trim()) && (oldprop1.ContainsAny("P", "N","")) && newprop1.ContainsAny("Y", "N"))
{
//log me to DB
}
if (!oldprop2.Trim().Equals(newprop2.Trim()) && (oldprop2.ContainsAny("P", "N", "")) && newprop2.ContainsAny("Y", "N"))
{
//log me to DB
}
if (!oldprop3.Trim().Equals(newprop3.Trim()) && (oldprop3.ContainsAny("P", "N", "")) && newprop3.ContainsAny("Y", "N"))
{
//log me to DB
}
public static bool ContainsAny(this string haystack, params string[] needles)
{
foreach (string needle in needles)
{
if (haystack.Contains(needle))
return true;
}
return false;
}
Gibt es einen besseren Weg, dies zu schreiben?
Ein String enthalten, können nicht eine leere Zeichenfolge ist, entweder ein String ist, oder nicht, leer. – Kevin