创造大写字母之间的空间与连续的跨越空间

Had*_*out 2 c# linq

我得到了创造空间"ThisCourse"的方式是"这个课程"

在大写字母之前添加空间(EtienneT)LINQ语句

但是我不能

创建空间Betweeen此"ThisCourseID"为"此课程ID","ID"之间没有空格

在Linq有没有办法做到这一点?

Hug*_*une 8

好吧,如果它必须是一个单一的linq声明......

var s = "ThisCourseIDMoreXYeahY";
s = string.Join(
        string.Empty, 
        s.Select((x,i) => (
             char.IsUpper(x) && i>0 && 
             ( char.IsLower(s[i-1]) || (i<s.Count()-1 && char.IsLower(s[i+1])) )
        ) ? " " + x : x.ToString()));
Console.WriteLine(s);
Run Code Online (Sandbox Code Playgroud)

输出:"此课程ID更多X是啊Y"