wie den maximalen Index eines Strings von Variablen in c # zu finden?
Frage
Angenommen, ich habe eine Zeichenfolge wie
string[] _strFile;
foreach (ListViewItem item in listview1.Items)
{
string _strRecFileName = item.SubItems[5].Text;
_strFile = _strRecFileName.Split('\\');
}
in meinem Listview Ich habe einen String als \ 123 \ abc \ Hallo \ .net \ **** winxp **** Nun will ich den letzten Wert der Zeichenfolge erhalten d winxp in diesem Fall .. Was ist die Funktion, das zu tun?
kann ich mit getupperbond Funktion der oberen Grenze des Strings zu berechnen, und wie es zu benutzen?
Lösung
string[] files = _strRecFileName.Split('\\');
string lastElement = files[files.Length - 1];
Natürlich, wenn man es zu tun mit dem tatsächlichen Dateinamen und Pfaden und Sachen, ist es wahrscheinlich einfacher, nur die Path
Klasse verwenden:
string fileName = Path.GetFileName(_strRecFileName);
Andere Tipps
warum nicht Gebrauch
string expectedPart = Path.GetFileName(item.SubItems[5].Text);
http://msdn.microsoft.com /en-us/library/system.io.path.getfilename.aspx
versuchen, diese:
string s = @"a\b\c\d\e";
int index = s.LastIndexOf('\\');
string fileName = s.Substring(index + 1);
Sie werden nur eine zusätzliche Zeichenkette in diesem Fall erstellen, so dass es weniger Speicher als ein Array von Strings verwenden. Aber wie codeka sagte, wenn der Text ein richtiger Pfad ist dann die Path
Klasse besser wäre.
String lastArrayItem = _strFile[_strFile.Length-1];
Sie können jederzeit verwenden regex
string sub = System.Text.Regularexpressions.Regex.Match(TextVar,@"\\(\w+?)$").groups[1].value
String str = "\\123\\abc\\hello\\.net\\winxp";
String[] tokens = str.Split('\\');
String lastToken = tokens[tokens.Length - 1];