C# 在.NET中第n个字符之前的所有内容均为大写

C# 在.NET中第n个字符之前的所有内容均为大写,c#,.net,regex,comparison,C#,.net,Regex,Comparison,我需要在第二个之前将所有内容大写-从.NET中字符串的开头开始。最好的方法是什么?第二个破折号前的字符串可以是任何内容。我需要一个新的单一字符串一旦这是完整的 以前 Tt-Fga - Louisville - Kentucky 之后 您可以在此处使用replace.replace,替换为$1.upper()或c.中提供的内容 看 您可以在此处使用replace.replace,替换为$1.upper()或c.中提供的内容 看 您可以在此处使用replace.replace,替换为$1.up

我需要在第二个之前将所有内容大写-从.NET中字符串的开头开始。最好的方法是什么?第二个破折号前的字符串可以是任何内容。我需要一个新的单一字符串一旦这是完整的

以前

Tt-Fga - Louisville - Kentucky
之后

您可以在此处使用replace.replace,替换为
$1.upper()
c.
中提供的内容

您可以在此处使用replace.replace,替换为
$1.upper()
c.
中提供的内容

您可以在此处使用replace.replace,替换为
$1.upper()
c.
中提供的内容

您可以在此处使用replace.replace,替换为
$1.upper()
c.
中提供的内容

  • IndexOf
    标识连字符的位置。您必须使用此函数两次,才能找到第一个连字符,然后是第二个连字符
  • 构造仅包含小于等于
    子字符串
    的字符的子字符串。构造包含所有剩余字符的子字符串
  • 大写字母带
    ToUpper
    的第一个字符串
  • 使用+运算符连接
  • IndexOf
    标识连字符的位置。您必须使用此函数两次,才能找到第一个连字符,然后是第二个连字符
  • 构造仅包含小于等于
    子字符串
    的字符的子字符串。构造包含所有剩余字符的子字符串
  • 大写字母带
    ToUpper
    的第一个字符串
  • 使用+运算符连接
  • IndexOf
    标识连字符的位置。您必须使用此函数两次,才能找到第一个连字符,然后是第二个连字符
  • 构造仅包含小于等于
    子字符串
    的字符的子字符串。构造包含所有剩余字符的子字符串
  • 大写字母带
    ToUpper
    的第一个字符串
  • 使用+运算符连接
  • IndexOf
    标识连字符的位置。您必须使用此函数两次,才能找到第一个连字符,然后是第二个连字符
  • 构造仅包含小于等于
    子字符串
    的字符的子字符串。构造包含所有剩余字符的子字符串
  • 大写字母带
    ToUpper
    的第一个字符串
  • 使用+运算符连接
    我继续这样做。如果有更好的答案,请告诉我

     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);
    
    var parts=@event.EventParent.Name.Split(新[]{'-},StringSplitOptions.RemoveEmptyEntries);
    对于(int i=0;i=2)
    打破
    parts[i]=parts[i].ToUpper();
    }
    @event.EventParent.Name=string.Join(“-”,parts);
    
    我继续这样做了。如果有更好的答案,请告诉我

     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);
    
    var parts=@event.EventParent.Name.Split(新[]{'-},StringSplitOptions.RemoveEmptyEntries);
    对于(int i=0;i=2)
    打破
    parts[i]=parts[i].ToUpper();
    }
    @event.EventParent.Name=string.Join(“-”,parts);
    
    我继续这样做了。如果有更好的答案,请告诉我

     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);
    
    var parts=@event.EventParent.Name.Split(新[]{'-},StringSplitOptions.RemoveEmptyEntries);
    对于(int i=0;i=2)
    打破
    parts[i]=parts[i].ToUpper();
    }
    @event.EventParent.Name=string.Join(“-”,parts);
    
    我继续这样做了。如果有更好的答案,请告诉我

     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);
    
    var parts=@event.EventParent.Name.Split(新[]{'-},StringSplitOptions.RemoveEmptyEntries);
    对于(int i=0;i=2)
    打破
    parts[i]=parts[i].ToUpper();
    }
    @event.EventParent.Name=string.Join(“-”,parts);
    
    这将为您的具体案例完成工作:

    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);
    }
    
    公共静态字符串ToUpperUntilnThorrenceOfchar(字符串文本、字符c、整数出现)
    {
    if(出现次数>文本计数(x=>x==c))
    {
    返回text.ToUpper();
    }
    int指数=0;
    对于(int i=0;i<出现次数;i++,索引++)
    {
    index=text.IndexOf(c,index);
    }
    返回text.Substring(0,索引).ToUpper()+text.Substring(索引);
    }
    
    这将为您的具体案例完成工作:

    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);
    }
    
    公共静态字符串ToUpperUntilnThorrenceOfchar(字符串文本、字符c、整数出现)
    {
    if(出现次数>文本计数(x=>x==c))
    {
    返回text.ToUpper();
    }
    int指数=0;
    对于(int i=0;i<出现次数;i++,索引++)
    {
    index=text.IndexOf(c,index);
    }
    返回text.Substring(0,索引).ToUpper()+text.Substring(索引);
    }
    
    这将为您的具体案例完成工作:

    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);
    }
    
    公共静态字符串ToUpperUntilnThorrenceOfchar(字符串文本、字符c、整数出现)
    {
    if(出现次数>文本计数(x=>x==c))
    {