2016-07-27 5 views
-1

Ich mache eine Behauptung, um einige SQL-Felder von welcher Datenbank zu einem anderen zu finden.Iterate durch Liste boolescher Ausdruck, was fehlgeschlagen C#

Das funktioniert einwandfrei, wenn ich weiß, ob es erfolgreich ist oder nicht, aber wenn es nicht funktioniert, möchte ich wissen, welche Werte nicht übereinstimmen.

Kann jemand Code zur Verfügung stellen?

Antwort

1

Sie könnten beide in einem Durchgang tun

string message = String.Empty; 
bool ContainsBracketsWithString = AssertionValue.All(a => 
      CredentialTypeDescription.Any(b => { 
        var passed = a.Field1 == b.Field1; 
        if(!passed && String.IsNullOrEmpty(message)){ 
         message = "Some message to identify which failed"; 
        } 
        return passed; 
       }) 
       ); 

Assert.False(ContainsBracketsWithString, message); 
+0

gut wie werde ich wissen, welche gescheitert? Ich möchte, dass es alle Werte durchläuft und den fehlgeschlagenen Wert zurückgibt. Daher müsste eine Nachricht die fehlgeschlagenen Werte enthalten. Wird VAR beim Durchlaufen der Werte übergeben? – Elsid

+0

Sie könnten Reflexion verwenden, um a und b zu identifizieren. Da Sie derjenige sein werden, der die Felder schreibt, benennen Sie einfach die Felder in Ihrer Nachricht. – Nkosi

+0

arbeitet nach dem ersten Feld, das fehlschlägt, erreicht das gleiche wie eine eingebaute Assertion: – Elsid