Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#-只影响小写字母的ToTitleCase?_C# - Fatal编程技术网

C#-只影响小写字母的ToTitleCase?

C#-只影响小写字母的ToTitleCase?,c#,C#,在C#中,我正在寻找一种与ToTitleCase非常相似的代码,只是我需要它只影响小写字母。我不希望任何大写字母变成小写,我只需要将小写字母正确地带到大写 这是针对电子商务软件的,因此,资本降低是交易的破坏者。使品牌名称看起来不正确 任何帮助都将不胜感激 您可以使用一种方法,该方法将放弃ToTitleCase()中不需要的更改 我在这里使用的是StringBuilder而不是普通的string,因为StringBuilder(你可能会从它的名字猜到)附加字符串的速度比string的+=操作符快得

在C#中,我正在寻找一种与ToTitleCase非常相似的代码,只是我需要它只影响小写字母。我不希望任何大写字母变成小写,我只需要将小写字母正确地带到大写

这是针对电子商务软件的,因此,资本降低是交易的破坏者。使品牌名称看起来不正确


任何帮助都将不胜感激

您可以使用一种方法,该方法将放弃
ToTitleCase()
中不需要的更改

我在这里使用的是
StringBuilder
而不是普通的
string
,因为
StringBuilder
(你可能会从它的名字猜到)附加字符串的速度比
string
+=
操作符快得多。如果您的标题很长,或者在长循环中使用此方法,则这一点尤其重要

public string BetterTitileCase(string original)
{
    string title = /* ToTitleCase call here, etc. */;

    StringBuilder fixedTitle = new StringBuilder();

    //the title and the original string should be the same length
    for(int i = 0; i < title.length; i++)
    {
        if(char.IsLower(original[i]))
            fixedTitle.Append(title[i]);
        else
            fixedTitle.Append(original[i]);
    }

    return fixedTitle.ToString();
}
public string bettertilecase(字符串原始)
{
字符串title=/*ToTitleCase调用此处,等等。*/;
StringBuilder fixedTitle=新StringBuilder();
//标题和原始字符串的长度应相同
for(int i=0;i
您希望所有内容都是大写的吗?您能展示您尝试过的内容吗?从我阅读的内容来看,您有这样一个输入,“这是我的公司”,并且希望输出为“这是我的公司”。我理解正确吗?TextInfo.ToTitleCase方法不使用小写字母,至少使用我当前的UICulture<代码>?textInfo.ToTitleCase(“ABC管道”)返回“ABC管道”<代码>?textInfo.ToTitleCase(“这是ABC管道”)返回“This Is ABC Pimping”(这是ABC管道)
if
语句是向后的-它应该是
if(original[i].IsUpper)
。您可能需要使用
StringBuilder
,否则可能会在循环中创建一组字符串。不太好。另外,
char
上没有实例属性
IsLower
。您的意思可能是:
char.IsLower(原始[i])
。您是否编译了您的建议?您应该始终使用
StringBuilder
示例,因为字符串是不可变的,您在第一个示例中每次更改fixedTitle时都会创建一个新字符串。我很想放弃该生成器,并使用类似
string fixedTitle=string.Join(“,title.Zip(原始,(t,o))的东西=>char.IsUpper(o?o:t))