Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.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#比较字符串中的字符_C#_String_Char - Fatal编程技术网

C#比较字符串中的字符

C#比较字符串中的字符,c#,string,char,C#,String,Char,为什么我的代码只比较第一个字符? 我的错误在哪里? 我试着比较两个字符串中的字符,得到像“相机”比“汽车”先出现的字符串。但如果“摄像头”是第二个参数,我的程序告诉我,汽车是第一位的 static string CompareChars(string a, string b) { foreach (char aa in a) { foreach (char bb in b) {

为什么我的代码只比较第一个字符? 我的错误在哪里? 我试着比较两个字符串中的字符,得到像“相机”比“汽车”先出现的字符串。但如果“摄像头”是第二个参数,我的程序告诉我,汽车是第一位的

     static string CompareChars(string a, string b)
    {

        foreach (char aa in a)
        {

            foreach (char bb in b)
            {
                if (aa > bb)
                    return a;
            }
        }

        return b;

    }

您正在将
a
的第一个字母与
b
中的所有字母进行比较,而不是将
a
的第一个字母与
b
中的第一个字母进行比较,然后移动到两个字符串的第二个字母

您可能需要一个
for
循环+索引到两个字符串中

也可以使用内置的比较功能:

static string CompareString(string a, string b)
{
    return a.CompareTo(b) < 0 ? a : b;
}
静态字符串比较(字符串a、字符串b)
{
返回a.CompareTo(b)<0?a:b;
}

您正在将
a
的第一个字母与
b
中的所有字母进行比较,而不是将
a
的第一个字母与
b
中的第一个字母进行比较,然后继续两个字符串的第二个字母

您可能需要一个
for
循环+索引到两个字符串中

也可以使用内置的比较功能:

static string CompareString(string a, string b)
{
    return a.CompareTo(b) < 0 ? a : b;
}
静态字符串比较(字符串a、字符串b)
{
返回a.CompareTo(b)<0?a:b;
}

如第一个答案所述,您正在将第一个字符串中的所有字符与第二个字符串中的每个字母进行比较,因此,将其分解为:

var a=“this”;
var b=“该”;
您的比较集看起来像

if('t'>'t')

if('t'>'h')

if('t'>'a')

if('t'>'t')

if('h'>'t')

if('h'>'h')

if('h'>'a')

if('h'>'t')

等等

如前所述,您可以使用

static string CompareString(string a, string b)
{
   return a.CompareTo(b) < 0 ? a : b;
}
静态字符串比较(字符串a、字符串b)
{
返回a.CompareTo(b)<0?a:b;
}
以下是指向综合字符串比较文档的链接:


希望这有帮助

正如第一个答案中所述,您正在将第一个字符串中的所有字符与第二个字符串中的每个字母进行比较,因此,将其分解为:

var a=“this”;
var b=“该”;
您的比较集看起来像

if('t'>'t')

if('t'>'h')

if('t'>'a')

if('t'>'t')

if('h'>'t')

if('h'>'h')

if('h'>'a')

if('h'>'t')

等等

如前所述,您可以使用

static string CompareString(string a, string b)
{
   return a.CompareTo(b) < 0 ? a : b;
}
静态字符串比较(字符串a、字符串b)
{
返回a.CompareTo(b)<0?a:b;
}
以下是指向综合字符串比较文档的链接:


希望这有帮助

哇,太不可思议了。谢谢你,马辛。哇,难以置信。谢谢Marcin。指尖上的调试器是一种很好的方法,可以帮助您自己解决这类问题……并了解更多有关代码实际执行方式的信息。指尖上的调试器是一种很好的方法,可以帮助您自己解决这类问题……并了解更多有关代码实际执行方式的信息。