Как найти максимальный индекс строки из переменной в C #? - PullRequest
0 голосов
/ 16 марта 2010

предположим, у меня есть строка как

        string[] _strFile;

        foreach (ListViewItem item in listview1.Items)
        {
            string _strRecFileName = item.SubItems[5].Text;
            _strFile = _strRecFileName.Split('\\');
        }

в моем списке просмотра есть строка \ 123 \ abc \ hello \ .net \ **** winxp **** теперь я хочу получить последнее значение строки, т.е. winxp в этом случае .. что это за функция?

можно ли использовать функцию getupperbond для вычисления верхней границы строки и как ее использовать?

Ответы [ 6 ]

2 голосов
/ 16 марта 2010

почему бы не использовать

string expectedPart = Path.GetFileName(item.SubItems[5].Text);

http://msdn.microsoft.com/en-us/library/system.io.path.getfilename.aspx

2 голосов
/ 16 марта 2010
string[] files = _strRecFileName.Split('\\');
string lastElement = files[files.Length - 1];

Конечно, если вы имеете дело с реальными именами файлов, путями и прочим, вероятно, проще использовать класс Path:

string fileName = Path.GetFileName(_strRecFileName);
1 голос
/ 16 марта 2010

попробуйте это:

string s = @"a\b\c\d\e";
int index = s.LastIndexOf('\\');
string fileName = s.Substring(index + 1);

В этом случае вы создадите только одну дополнительную строку, поэтому она будет использовать меньше памяти, чем массив строк. Но, как сказал кодека, если текст является правильным путем, класс Path будет лучше.

0 голосов
/ 16 марта 2010

Вы всегда можете использовать регулярные выражения

string sub = System.Text.Regularexpressions.Regex.Match(TextVar,@"\\(\w+?)$").groups[1].value
0 голосов
/ 16 марта 2010
String lastArrayItem = _strFile[_strFile.Length-1];
0 голосов
/ 16 марта 2010
String str = "\\123\\abc\\hello\\.net\\winxp";
String[] tokens = str.Split('\\');
String lastToken = tokens[tokens.Length - 1];
...