2011-12-28 15 views

Odpowiedz

14

string.Split zrobi tego, nie ma potrzeby, aby przejść do Substring:

var parts = "hello_my name_is_bob".Split('_'); 

string name = parts[1] // == "my name"; 

Albo w jednej liniowej (choć uważam to mniej czytelny):

string name = "hello_my name_is_bob".Split('_')[1]; 
+0

Dobre rzeczy, początkowo używałem cudzysłowów, ale to daje mi wyjątek więc zmieniłem je apostrofami i to działało jak mistrz. – MDL

+0

@MDL - Podwójne cudzysłowy w ciągach C# delimit, pojedyncze cudzysłowy ograniczają znaki. – Oded

1

Jeśli wiesz o upewnij się, że masz dwa podkreślenia, użyj tego kodu:

var pos = str.IndexOf('_'); 
var last = str.IndexOf('_', pos+1); 
var res = str.Substring(pos+1, last-pos-1); 

To będzie fai l, jeśli liczba podkreśleń jest mniejsza niż dwa.

2
"hello_my name_is_bob".Split('_').Skip(1).First();