如何将字符串与C#中的字符串数组进行比较?
是的,我是一个初学者,也许这是不可能的,但是我可以做些什么来测试一个字符串是否等于一个字符串数组如何将字符串与C#中的字符串数组进行比较?,c#,arrays,string,C#,Arrays,String,是的,我是一个初学者,也许这是不可能的,但是我可以做些什么来测试一个字符串是否等于一个字符串数组 string speech = e.Result.Text; String[] greeting = new string[2] { "hello", "hi" }; if (speech == greeting) { James.SpeakAs
string speech = e.Result.Text;
String[] greeting = new string[2] { "hello", "hi" };
if (speech == greeting)
{
James.SpeakAsync("Hi");
}
所以你得到了一个由两个名字组成的字符串数组
string[]arrayOfNames{“Jon”,“Jack”}
字符串jon=“jon”;
/*为了检查var中的名称是否与列表中的名称相同,可以执行foreach循环*/
foreach(arrayOfNames中的变量名称)
{
//检查每把钥匙,看我们是否有乔恩的名字
如果(name==jon)打印(“成功”);
}
Linq扩展方法是最好的方法
using System.Linq;
...
if(greeting.Contains(speech) {
// Do something
}
方法:Linq 如果已经导入了Linq,则只需使用Linq:
string speech = e.Result.Text;
string[] greeting = new string[2] { "hello", "hi" };
if (greeting.Contains(speech))
{
James.SpeakAsync("Hi");
}
方法:IndexOf
如果尚未使用Linq,请使用Array.IndexOf检查字符串的索引。如果没有匹配项,结果将为-1
string speech = e.Result.Text;
string[] greeting = new string[2] { "hello", "hi" };
if (Array.IndexOf(greeting, speech) > -1)
{
James.SpeakAsync("Hi");
}
您可以使用LINQ方法:Contains()或Any() 您可以检查数组是否包含给定字符串,如下所示:
string speech = e.Result.Text;
var greeting = new string { "hello", "hi" };
if (greeting.Contains(speech))
{
James.SpeakAsync("Hi");
}
或
我假设您有一些字符串
speech
,您想知道该字符串是否等于数组greeting
中的字符串。(我基于这样一个假设:你想接受一些演讲,并将其等同于各种问候语——你在这里所说的“平等”实际上是指演讲属于一组问候语。)
在这种情况下,您需要循环数组值,并将它们逐个与原始字符串进行比较。我建议使用一种新的方法
例如,我们假设语音
在这里是“hi”
:
string speech = "hi";
String[] greeting = new string[2] { "hello", "hi" };
for (int i = 0; i < greeting.Length; i++) {
if (speech == greeting[i])
{
Console.WriteLine ("found string in array");
}
}
string speech=“hi”;
字符串[]问候语=新字符串[2]{“你好”,“你好”};
for(int i=0;i
请注意,我使用greeting.Length
获取数组的大小(即2
)。(见:)
还要注意,我使用greeting[I]
访问数组的第I个字符串
i
从0开始,因此使用问候语[0]获取数组中的第一个字符串
在本例中为数组的第一个元素“hello”
“hello”
不等于“hi”
,因此不会发生任何事情,循环将以i=1
而不是i=0
重新开始
现在有了i=1
,问候[1]
给我们带来了“嗨”
,这与语音
相同,我们得到了我写的控制台消息
这就是你要找的吗
由于您是初学者,我建议您花些时间阅读阵列上的文档:
一定要尝试一些例子,让自己熟悉
一旦您熟悉了循环,一个更优雅的解决方案将是使用,如类似问题中所述。除了如果
speech
等于“hello”或“hi”,结果应该是true
。
string speech = "hi";
String[] greeting = new string[2] { "hello", "hi" };
for (int i = 0; i < greeting.Length; i++) {
if (speech == greeting[i])
{
Console.WriteLine ("found string in array");
}
}