2016-04-19 24 views
-7

Ich muss auf Frage: Filter alle Schüler in der Liste mit Ergebnis ist "Pass". Aber wenn ich einen Code wie im Bild unten schreibe, wird er immer mit der folgenden Warnung falsch zurückgegeben: Der Typ 'String' kann nicht implizit in 'bool' konvertiert werden. Obwohl ich Convert.ToBoolean (t.Result) verwendet habe, aber es kann nicht funktionieren?Konvertieren Sie den Typ 'string' implizit in 'bool'

Hilf mir!

enter image description here

enter image description here

+2

Bitte Code als Text hinzufügen, nicht ein Bild. Sie sagen auch '.Where (t => t.Result)'. Aber Sie haben nicht angegeben, was Sie tun sollen. Wo ist das Ergebnis gleich * was *? In diesem Fall möchten Sie wahrscheinlich '.Where (t => t.Result ==" Pass ")' – Rob

+0

Anstatt es als Bild zu befestigen, könnten Sie bitte Ihren Code in der Frage schreiben. – Hendry

+0

Ich habe diese Frage abgelehnt, weil Sie Code und Fehlermeldungen immer als Text und nicht als Bilder angeben sollten (ansonsten können Elemente Ihrer Frage nicht durchsucht werden). Bearbeiten Sie Ihre Frage. Füge den Code hinzu, dann kann ich meinen DV entfernen. – spender

Antwort

3

die Schüler alle mit in die Liste zu filtern ist „Pass“ Sie die Bedingung hinzufügen müssen wie:

lst.Where(t => t.Result=="Pass").ToList(); 

Sie mit einem das gleiche tun Boolesche Eigenschaft stattdessen für diese Zeichenfolge, so dass die Eigenschaftsdefinition lautet:

public bool Result 
{ 
    get { return Score > 25; }   
} 

So ist die iterative Zustand mit in der Liste alle Schüler zum Filtern ist „Pass“ (Score > 25) wird

lst.Where(t => t.Result).ToList(); 
+0

in der Tat könnten Sie einfach sagen, 'Return Score> 25;' –

+0

@HariPrasad: Ja absolut; danke ich habe die Antwort aktualisiert –

+0

Danke! Es ist sehr hilfreich – thceh

4

„True“ und „False“ sind die einzigen Strings, die boolean umgewandelt werden können, um mit Convert.ToBoolean

Einige Optionen sind:

    Ihre Methode ändern
  • true oder false als booleans zurückzukehren anstelle von Strings
  • Ihre Methode Ändern Sie die Saiten „True“ oder „False“ zurück und rufen Convert.ToString
  • eine Wrapper-Methode schreiben „Pass“ und „Fail“ zu true und false zu konvertieren.
  • zu .Where(t => t.Result == "Pass") ändern Zustand
+0

'Convert.ToBoolean' ist nicht Groß-und Kleinschreibung, so kann es auch" wahr "und" falsch "akzeptieren. – spender

+0

Danke! Es ist sehr hilfreich. Vielen Dank – thceh

Verwandte Themen