Подтвердить что ты не робот

Разделить строку и получить только первое значение

Интересно, можно ли использовать split для разделения строки с несколькими частями, разделенными запятой, например:

title, genre, director, actor

Мне просто нужна первая часть, название каждой строки, а не остальное?

4b9b3361

Ответ 1

string valueStr = "title, genre, director, actor";
var vals = valueStr.Split(',')[0];

vals даст вам название

Ответ 2

На самом деле есть лучший способ сделать это, чем раскол:

public string GetFirstFromSplit(string input, char delimiter)
{
    var i = input.IndexOf(delimiter);

    return i == -1 ? input : input.Substring(0, i);
}

И как методы расширения:

public static string FirstFromSplit(this string source, char delimiter)
{
    var i = source.IndexOf(delimiter);

    return i == -1 ? source : source.Substring(0, i);
}

public static string FirstFromSplit(this string source, string delimiter)
{
    var i = source.IndexOf(delimiter);

    return i == -1 ? source : source.Substring(0, i);
}

Использование:

string result = "hi, hello, sup".FirstFromSplit(',');
Console.WriteLine(result); // "hi"

Ответ 3

Вы можете сделать это:

var str = "Doctor Who,Fantasy,Steven Moffat,David Tennant";

var title = str.Split(',').First();

Также вы можете сделать это следующим образом:

var index = str.IndexOf(",");
var title = index < 0 ? str : str.Substring(0, index);