拆分字符串并仅获取第一个值

我想知道是否可以使用split来分隔一个字符串,其中包含几个用逗号分隔的部分,如下所示:

title, genre, director, actor 

我只想要第一部分,每个字符串的标题而不是其余部分?

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

vals会给你标题

实际上,有一种比分裂更好的方法:

 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" 

你能行的:

 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); 

这是我设法构建的两个选项,没有使用var类型的奢侈,也没有使用其他变量:

 string f = "aS.".Substring(0, "aS.".IndexOf("S")); Console.WriteLine(f); string s = "aS.".Split("S".ToCharArray(),StringSplitOptions.RemoveEmptyEntries)[0]; Console.WriteLine(s); 

这就是它得到的:

在此处输入图像描述