检查数组中的每个元素以查看它是否等于字符串
Checking Each Element in an Array to See if it is equal to a string
我在一个数组中有许多元素,我想检查一个字符串是否等于数组中的这些元素中的任何一个。数组中元素的数量可以改变数量。
我已经计算了数组中的元素数量,希望能有所优势,但一直未能想出解决方案。
int ArrayCount = FinalEncryptText.Count();
foreach (string i in FinalEncryptText)
{
}
您可以在 if 语句中使用 String.Equals 方法。有关 String.Method 的更多信息,请点击此处:String.Equals Method。
if(firstString.Equals(secondString))
{
//whatever you need to do here
}
我不确定你的方法是什么样的,但我假设..你得到了一个随机的字符串数组..并且你想在该数组中找到某个元素。使用 foreach 循环:
public string Check(string[] FinalEncryptText)
{
foreach (string i in FinalEncryptText)
{
//let's say the word you want to match in that array is "whatever"
if (i == "whatever")
{
return "Found the match: " + i;
}
}
}
使用常规 for 循环:
public string Check(string[] FinalEncryptText)
{
for (int i = 0; i < FinalEncryptText.Count; i++)
{
//let's say the word you want to match in that array is "whatever"
if (FinalEncryptText[i] == "whatever")
{
//Do Something
return "Found the match: " + FinalEncryptText[i];
}
}
}
现在,如果您已经有一个固定的数组..并且您正在传递一个字符串来检查该字符串是否存在于数组中,那么它会像这样:
public string Check(string stringToMatch)
{
for (int i = 0; i < FinalEncryptText.Count; i++)
{
//this will match whatever string you pass into the parameter
if (FinalEncryptText[i] == stringToMatch)
{
//Do Something
return "Found the match: " + FinalEncryptText[i];
}
}
}
使用您提供的 foreach 实现,您可以在 String.Equals(string)
中包含一个 if 条件 - 正如 之前指出的那样。
但值得注意的是,不带附加参数的 String.Equals(string)
等同于使用 ==
运算符。因此,最好指定 StringComparison
类型,以便表达您希望执行的比较类型。
例如,您可以这样做:
foreach (string element in myStringArray)
{
if(element.Equals("foo", StringComparison.CurrentCultureIgnoreCase))
...
}
您甚至可以将评估作为谓词包含在 LINQ 查询中。例如,假设您想查看哪些字符串通过了评估:
var matches = myStringArray
.Where(element => element.Equals("foo", StringComparison.CurrentCultureIgnoreCase));
您可以阅读更多关于比较字符串的内容 here。
我在一个数组中有许多元素,我想检查一个字符串是否等于数组中的这些元素中的任何一个。数组中元素的数量可以改变数量。
我已经计算了数组中的元素数量,希望能有所优势,但一直未能想出解决方案。
int ArrayCount = FinalEncryptText.Count();
foreach (string i in FinalEncryptText)
{
}
您可以在 if 语句中使用 String.Equals 方法。有关 String.Method 的更多信息,请点击此处:String.Equals Method。
if(firstString.Equals(secondString))
{
//whatever you need to do here
}
我不确定你的方法是什么样的,但我假设..你得到了一个随机的字符串数组..并且你想在该数组中找到某个元素。使用 foreach 循环:
public string Check(string[] FinalEncryptText)
{
foreach (string i in FinalEncryptText)
{
//let's say the word you want to match in that array is "whatever"
if (i == "whatever")
{
return "Found the match: " + i;
}
}
}
使用常规 for 循环:
public string Check(string[] FinalEncryptText)
{
for (int i = 0; i < FinalEncryptText.Count; i++)
{
//let's say the word you want to match in that array is "whatever"
if (FinalEncryptText[i] == "whatever")
{
//Do Something
return "Found the match: " + FinalEncryptText[i];
}
}
}
现在,如果您已经有一个固定的数组..并且您正在传递一个字符串来检查该字符串是否存在于数组中,那么它会像这样:
public string Check(string stringToMatch)
{
for (int i = 0; i < FinalEncryptText.Count; i++)
{
//this will match whatever string you pass into the parameter
if (FinalEncryptText[i] == stringToMatch)
{
//Do Something
return "Found the match: " + FinalEncryptText[i];
}
}
}
使用您提供的 foreach 实现,您可以在 String.Equals(string)
中包含一个 if 条件 - 正如
但值得注意的是,不带附加参数的 String.Equals(string)
等同于使用 ==
运算符。因此,最好指定 StringComparison
类型,以便表达您希望执行的比较类型。
例如,您可以这样做:
foreach (string element in myStringArray)
{
if(element.Equals("foo", StringComparison.CurrentCultureIgnoreCase))
...
}
您甚至可以将评估作为谓词包含在 LINQ 查询中。例如,假设您想查看哪些字符串通过了评估:
var matches = myStringArray
.Where(element => element.Equals("foo", StringComparison.CurrentCultureIgnoreCase));
您可以阅读更多关于比较字符串的内容 here。