C# 检查字符串的第一个字母是否与c中字符数组的元素匹配

C# 检查字符串的第一个字母是否与c中字符数组的元素匹配,c#,C#,我是c语言的初学者。我试图检查邮政编码的第一个字母是否与char数组的任何元素匹配。如果它与char数组的任何元素都不匹配,则返回false。 方法如下: string firstLetter= "KLMN"; char[] postalLetters = firstLetter.ToCharArray(); string PostalCode = "N2L0G6"; bool firstPostalLetterMatch = true; foreach(char ch in firstLet

我是c语言的初学者。我试图检查邮政编码的第一个字母是否与char数组的任何元素匹配。如果它与char数组的任何元素都不匹配,则返回false。 方法如下:

string firstLetter= "KLMN";
char[] postalLetters = firstLetter.ToCharArray();
string PostalCode = "N2L0G6";
bool firstPostalLetterMatch = true;

foreach(char ch in firstLetter)
{
    if (PostalCode.Substring(0, 1) != postalLetters.ToString())
    {
       firstPostalLetterMatch  = false;
    }
}

if(firstPostalLetterMatch == false)
{
    Console.WriteLine("Error");
}
else
{
    Console.WriteLine("No Error");
}

例如,如果邮政编码是N2L0G6。第一个字母是N。布尔应该是真的。因为第一个字母在字符数组中。

您可能需要这样的内容:

bool firstPostalLetterMatch = false;
char postCodeFirstLetter = PostalCode.ToCharArray()[0];
foreach(char ch in firstLetter)
{
    if (postCodeFirstLetter == ch)
    {
       firstPostalLetterMatch = true;
       break;
    }
}

你可能想要这样的东西:

bool firstPostalLetterMatch = false;
char postCodeFirstLetter = PostalCode.ToCharArray()[0];
foreach(char ch in firstLetter)
{
    if (postCodeFirstLetter == ch)
    {
       firstPostalLetterMatch = true;
       break;
    }
}
林克 这使问题有点颠倒了。上面写着:在我们收集的好信件中,是否有与测试邮政编码的第一个字母相匹配的信件

弗雷奇 使用foreach,你想找到任何匹配项,然后就可以停止查找

bool firstPostalLetterMatch = false;
foreach(char ch in postalLetters)
{
   if (PostalCode[0] == ch)
   {
      firstPostalLetterMatch  = true;
      break; // Match found, we no longer have to search
   }
}
林克 这使问题有点颠倒了。上面写着:在我们收集的好信件中,是否有与测试邮政编码的第一个字母相匹配的信件

弗雷奇 使用foreach,你想找到任何匹配项,然后就可以停止查找

bool firstPostalLetterMatch = false;
foreach(char ch in postalLetters)
{
   if (PostalCode[0] == ch)
   {
      firstPostalLetterMatch  = true;
      break; // Match found, we no longer have to search
   }
}

既然你说你是初学者,这里有一个简单易行的方法来实现你的需求

using System;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            string firstLetter = "KLMN";
            int firstLength = firstLetter.Length;
            int i = 0;
            string PostalCode = "N2L0G6";
            while (i < firstLength)
            {
                if (PostalCode[0].ToString().Contains(firstLetter[i]))
                {
                    Console.WriteLine(firstLetter[i] + " matches first letter of " + PostalCode);
                }
                else
                {
                    Console.WriteLine(firstLetter[i] + " does not match the first letter of " + PostalCode);
                }
                i++;
            }
            Console.Read();

        }
    }
}

既然你说你是初学者,这里有一个简单易行的方法来实现你的需求

using System;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            string firstLetter = "KLMN";
            int firstLength = firstLetter.Length;
            int i = 0;
            string PostalCode = "N2L0G6";
            while (i < firstLength)
            {
                if (PostalCode[0].ToString().Contains(firstLetter[i]))
                {
                    Console.WriteLine(firstLetter[i] + " matches first letter of " + PostalCode);
                }
                else
                {
                    Console.WriteLine(firstLetter[i] + " does not match the first letter of " + PostalCode);
                }
                i++;
            }
            Console.Read();

        }
    }
}

使用string.contains我不能这样做,因为如果数组是char而不是string。因此,bool firstPostalLetterMatch=postalleters.ContainsPostalCode.Substring0,1;无效。Bool没有containUse string的定义。contains我不能这样做,因为如果数组是char而不是string。因此,bool firstPostalLetterMatch=postalleters.ContainsPostalCode.Substring0,1;无效。Bool没有containment的定义。我可以将char数组转换为string数组,然后使用stringarray.contain吗?字符串看起来像test。调用ToCharArray将其转换为['t','e','s','t']。对此应用[0]只会请求数组中第一个位置的字符。我是否可以将字符数组转换为字符串数组,然后使用stringarray。是否包含?字符串类似于test。调用ToCharArray将其转换为['t','e','s','t']。对此应用[0]只会请求数组中第一个位置的字符。索引不能直接应用于字符串。你得先打电话给ToCharArray。除此之外,我很喜欢这个。不管怎样。漂亮整洁,易于阅读/理解。@RossGurbutt怎么样?是的,你说得对,对不起。我不明白为什么它不能在本地编译。索引不能直接应用于字符串。你得先打电话给ToCharArray。除此之外,我很喜欢这个。不管怎样。漂亮整洁,易于阅读/理解。@RossGurbutt怎么样?是的,你说得对,对不起。我不明白为什么它不能在本地为我编译。规范上说匹配的是邮政编码的第一个字母,而不是任何字母L'应该返回false,而不是true。规范上说匹配邮政编码的第一个字母,而不是任何字母。'我应该返回false,而不是true。