2017-05-10 7 views
0

habe ich eine Liste, die enthält: {"something1","something2","somefoo","bar"}Wenn der Anfang eines Strings ist gleich einem anderen

Ich habe eine foreach Schleife für jede Saite zu überprüfen.

string input = "thing"; 
foreach(string word in list) //list = {"something1","something2","somefoo","bar"} 
{ 
    if (word.StartContains(input)) 
      return; 
} 

So wie Sie ich will sehen überprüfen, ob meine input Zeichenfolge in der Zeichenfolge enthalten in der Liste. Das Ergebnis, das ich möchte, ist, dass ich in diesem Code nicht zurückgegeben werden soll.

Was müssen StartContains tun ??

Diese Methode muss überprüfen, ob die ersten Buchstaben gleich dem Eingang sind, Nicht das ganze Wort wie was Contains() tun.

Ich habe keine Ahnung, wie diese zu erstellen ...

Danke,

+0

Sie benötigen 'word.StartsWith (Eingabe)' so weit wie ich undestrand. –

+0

Enthält dasselbe, enthält aber Vergleiche beginnend mit dem ersten Zeichen und nicht mit einem Ort in der Zeichenfolge. – jdweng

+0

Meinen Sie, Sie müssen etwas implementieren, das dies tut und nicht eingebaut ist? Ich weiß, dass andere dir Antworten gegeben haben, die eingebaute Methoden verwenden, aber es ist nicht klar aus deiner Frage, ob das alles ist, was du brauchst oder ob du es selbst machen musst. – DigiFriend

Antwort

3

Sie String.StartsWith

verwenden könnten Legt fest, ob der Anfang dieser String-Instanz entspricht den angegebenen Zeichenfolge .

1

Im Folgenden erhalten Sie eine Liste aller Einträge, die Ihrer Eingabe entsprechen.

var input = "som"; 

    var strings = new List<string>() 
    {"something1","something2","somefoo","bar"}; 

    var stringsThatMatch = strings.Where(item => item.StartsWith(input)).ToList(); 
0

prüfen diese

var list = new List<string>(); 
       list.Add("something1"); 
       list.Add("domething1"); 
       list.Add("romething1"); 
       list.Add("yomething1"); 
       string input = "thing"; 
       char[] inputchars = input.ToCharArray(); 
       foreach (string word in list) //list = {"something1","something2","somefoo","bar"} 
       { 
        char[] characters = word.ToCharArray(); 

        if (inputchars[0] == characters[0]) 
         list.Remove(word); 
       } 
       return list; 
0

Wie andere haben bereits darauf hingewiesen, String.StartsWith() ist, was Sie suchen.

Aber Sie könnten auch eigene Extension für das

public static bool StartsWith(this string baseString, string stringToFind, int lettersToMatch) 
{   
    for(int i = 0; i < lettersToMatch; i++) 
    { 
     if(baseString[i] != stringToFind[i]) 
     { 
      return false; 
     } 
    } 
    return true; 
} 

erstellen Sie dann kann es so nennen:

bool startsWithMyName = "mynameisfelix".StartsWith("mynameisthomas", 8); // true 
startsWithMyName = "mynameisfelix".StartsWith("mynameisthomas", 10);  // false 

So könnte man einfach ajust die Menge der Buchstaben, die Sie anpassen möchten.

Verwandte Themen