2017-07-06 1 views
1

Ich habe ein String Array deklariert und ich möchte mit dem Namen von Benutzer wirdWie kann ich den Wert von String-Array vergleichen?

string[] MasterList = new string[] { 
    "Askay", "Puram", "Raman", "Srinivasa", 
    "Gopal", "Rajesh", "Anju", "Nagara", 
}; 

string YourName; 
Console.WriteLine("Enter your name: "); 
YourName = Console.ReadLine(); 

for(i=0; i<5; i++) 
{ 
    a = String.Compare(MasterList[i], YourName); 
    Console.WriteLine("Your name is not among the list") 
} 

Die resultierende Ausgabe nicht gegeben vergleichen, was ich erwarte, irgendwelche Ideen, wie ich darüber gehen kann?

+2

Warum 'i <5', wenn Sie mehr als 5 Indizes im Array haben? Warum nicht 'MasterList.Length'? –

+0

Ihr Code kompiliert nicht und Sie haben nicht gesagt, was Sie erwarten. Aber einfach: 'if (! MasterList.Contains (YourName)) {...}' anstelle der for-Schleife. –

Antwort

-1
bool found = false; 
foreach (string s in MasterList) 
{ 
    if(s == YourName) 
    found = true; 
} 
if(found) 
    Console.WriteLine("Your name is among the list"); 
else 
    Console.WriteLine("Your name is not among the list"); 
+1

Können Leute, die downvoting sind bitte geben Sie einige Kommentare zu @Peter, der ein relativ neuer Benutzer ist :) – garfbradaz

+1

@garfbradaz Wenn Peter nicht herausfinden kann, was mit seiner Antwort falsch ist, gibt es immer [Wie schreibe ich eine gute Antwort] ( – Jamiec

+0

) Das ist was ich meine @Jamiec - das ist hilfreich und gibt einen Link zur Anleitung (ich habe versucht, es selbst zu finden) - kudo! :) – garfbradaz

2

Warum nicht die Contains Methode verwenden?

Fügen Sie die folgende Zeile in der Verwendung von Richtlinien zuerst:

using System.Linq; 

Und dann, entfernen Sie die for-Schleife und verwenden Sie die folgende Zeile statt:

if (!MasterList.Contains(YourName, StringComparer.OrdinalIgnoreCase)) 
{ 
    Console.WriteLine("Your name is not among the list") 
} 
+0

Ich denke mit 'Contains' hier ist nicht sicher, auch es 'Contains', kann immer noch nicht der Name sein, sollte vollständig übereinstimmen – LONG

2

Warum nicht Contains?

string[] MasterList = new string[] { 
    "Askay", "Puram", "Raman", "Srinivasa", 
    "Gopal", "Rajesh", "Anju", "Nagara", 
    }; 

    Console.WriteLine("Enter your name: "); 
    string YourName = Console.ReadLine(); 

    // StringComparer.OrdinalIgnoreCase if you want to ignore case 
    // MasterList.Contains(YourName) if you want case sensitive 
    if (!MasterList.Contains(YourName, StringComparer.OrdinalIgnoreCase)) 
    Console.WriteLine("Your name is not among the list") 
Verwandte Themen