我需要在第二个之前将所有内容都大写 - 从.NET中字符串的开头。做这个的最好方式是什么?第二个破折号之前的字符串可以是任何东西。一旦完成,我需要一个新的单个字符串。
在
Tt-Fga - Louisville - Kentucky
在
TT-FGA - Louisville - Kentucky
答案 0 :(得分:2)
这应该可以为您的具体案例完成工作:
public static string ToUpperUntilSecondHyphen(string text)
{
int index = text.IndexOf('-', text.IndexOf('-') + 1);
return text.Substring(0, index).ToUpper() + text.Substring(index);
}
更通用的方法可能如下所示:
public static string ToUpperUntilNthOccurrenceOfChar(string text, char c, int occurrences)
{
if (occurrences > text.Count(x => x == c))
{
return text.ToUpper();
}
int index = 0;
for (int i = 0; i < occurrences; i++, index++)
{
index = text.IndexOf(c, index);
}
return text.Substring(0, index).ToUpper() + text.Substring(index);
}
答案 1 :(得分:1)
IndexOf
标识连字符的位置。你必须使用这个函数两次才能找到第一个连字符,然后是第二个连字符。Substring
的字符的子字符串。构造包含所有剩余字符的子字符串。ToUpper
。答案 2 :(得分:0)
答案 3 :(得分:0)
我继续前进并做到了这一点。如果有更好的答案,请告诉我。
var parts = @event.EventParent.Name.Split(new[] {'-'}, StringSplitOptions.RemoveEmptyEntries);
for (int i = 0; i < parts.Length; i++)
{
if (i >= 2)
break;
parts[i] = parts[i].ToUpper();
}
@event.EventParent.Name = string.Join("-", parts);