2016-12-15 5 views
-2

Ich erstelle eine Webanwendung, in dem ich brauche die Zeichenfolge von ,String enthält keine Definition für ‚split‘ enthalten

hier zu teilen, was ich

List<string> td = tdate.Split(','); 

getan haben, aber ich bin immer diese Fehler

string does not contain a definition for 'split'

ich tue dies, weil ich diese Zeichenfolge teilen wollen und die gespaltet Zeichenfolge in die Datenbank einfügen einzeln mit Hilfe von foreach-Schleife

int i = 0; 
    foreach(string t in td) 
{ 
// here will be my insert command 
} 

was muss ich mit diesem Fehler tun ??

+0

Wie sieht Ihr 'tdate' aus ?? –

+0

try 'tdate.ToString(). Split (',');' ... was ist der Datentyp von tdate –

+1

'string [] td = tdate.Split (','); ' –

Antwort

4

Bitte, mit dem syntax genau sein:

string[] td = tdate.Split(','); 

Hinweis, der Rückgabetyp ist Array und Namen der Methode ist Split, nicht split. Wenn Sie Arbeit mit List<String> haben :

List<string> td = tdate.Split(',').ToList(); 
+0

Sehen Sie sich den Link an, den Sie gepostet haben und auf Ihre Antwort. Es gibt keine überladene Methode, die 'char' als Trennzeichen verwendet. Es gibt einen, der 'char []' stattdessen verwendet. –

+1

@ m.rogalski: Danke! Ich habe den Link bearbeitet. es zeigt nun auf 'public string [] Split (params char [] separator)' method; technisch, die Methode will 'char []' Array, aber da es 'params char []' (bitte beachten Sie, 'params')' Split (',') 'ist richtig –

+0

In einigen Fällen (ich habe es versucht dies vor dem Kommentar) zeigt den gleichen Fehler wie bei OP. –

0

Es scheint, entweder Ihr tdate ist nicht von String-Typ oder ein Array von String. Sehen Sie, wenn Sie tdate wie

var tdate = //some values; 

dann init haben ändern

string tdate; 

und dann sollte Ihr Code aussehen entweder

string tdate = "[15122016,16122016,17122016]"; 
List<string> td = tdate.Split(',').ToList(); 

weil Split ein String-Array zurückgibt und nicht in der Liste aber wir können das Array in eine Liste konvertieren, indem Sie ToList() verwenden, oder Sie müssen ein Array mit einem String wie diesem definieren

string tdate = "[15122016,16122016,17122016]"; 
string[] td = tdate.Split(','); 

dann den Code Insertion ändern

int i = 0; 
for(int k=0; k < td.Length; k++) 
{ 
    // here will be my insert command 
} 

und die Werte aus dem Index zugreifen wie td[i]

+0

Sie sollten einige Erläuterungen hinzufügen, anstatt einen Code zu löschen -1 – Toshi

+0

Wenn dies ein Konvertierungs-/Typfehler wäre, wäre die Nachricht nicht _string enthält keine Definition für 'split__ – Toshi

1

Okay, so, wenn Sie in der Dokumentation über string.Split(..) Methode sehen Sie 6 verschiedene Parameter-Kombinationen haben. Wenn Sie sie genau beobachten, werden Sie etwas bemerken, das Ihre Frage beantwortet. Die beste Überlastung für Ihre Lösung ist string.Split(params char[] separator), die eine Reihe von Zeichen erfordert:

List<string> td = tdate.Split(new char[] { ',' }).ToList(); 

Und Sie können immer anderes verwenden wie:

List<string> td = tdate.Split(',', StringSplitOptions.RemoveEmptyEntries).ToList(); // or something like that. 

Grundsätzlich haben Sie die Dokumentation lesen und finden Sie die beste Lösung das wird für dich arbeiten.

Verwandte Themen