C# 如何比较字符串数组的值?

C# 如何比较字符串数组的值?,c#,asp.net,C#,Asp.net,我声明了一个字符串数组,我想与用户给定的名称进行比较 string[] MasterList = new string[] { "Askay", "Puram", "Raman", "Srinivasa", "Gopal", "Rajesh", "Anju", "Nagara", }; string YourName; Console.WriteLine("Enter your name: "); YourName = Console.ReadLine(); for(i=0; i&l

我声明了一个字符串数组,我想与用户给定的名称进行比较

string[] MasterList = new string[] {
  "Askay", "Puram", "Raman", "Srinivasa",
  "Gopal", "Rajesh", "Anju", "Nagara",
};

string YourName;
Console.WriteLine("Enter your name: ");
YourName = Console.ReadLine();

for(i=0; i<5; i++)
{
    a = String.Compare(MasterList[i], YourName);
    Console.WriteLine("Your name is not among the list")
}
string[]主列表=新字符串[]{
“Askay”、“Puram”、“Raman”、“Srinivasa”,
“Gopal”、“Rajesh”、“Anju”、“Nagara”,
};
把你的名字串起来;
Console.WriteLine(“输入您的姓名:”);
YourName=Console.ReadLine();
对于(i=0;i为什么不使用该方法

首先在using指令中添加以下行:

using System.Linq;
然后,删除for循环并使用以下行:

if (!MasterList.Contains(YourName, StringComparer.OrdinalIgnoreCase))
{
    Console.WriteLine("Your name is not among the list")
}

为什么
不包含

  string[] MasterList = new string[] {
    "Askay", "Puram", "Raman", "Srinivasa",
    "Gopal", "Rajesh", "Anju", "Nagara",
  };

  Console.WriteLine("Enter your name: ");
  string YourName = Console.ReadLine();

  // StringComparer.OrdinalIgnoreCase if you want to ignore case
  // MasterList.Contains(YourName) if you want case sensitive 
  if (!MasterList.Contains(YourName, StringComparer.OrdinalIgnoreCase))
    Console.WriteLine("Your name is not among the list")

为什么要使用
i你的代码没有编译,你还没有告诉你想要什么。但是很简单:
if(!MasterList.Contains(YourName)){…}
而不是for-loop。投反对票的人可以给@Peter一些意见吗?他是一个相对较新的用户:)@garfbradaz如果Peter无法找出答案的错误所在,那么总是会将字符串与
==
运算符进行比较,从而产生不可预测的结果(我没有投反对票)。您正在引用以查看它是否是完全相同的对象(不管内容如何,字符串通常不是)。@gravity-see谢谢,伙计……它按我的要求工作!谢谢@Peter Meadlei我认为在这里使用
Contains
是不安全的,即使它
Contains
,也可能不是名字,应该完全匹配
bool found = false;
foreach (string s in MasterList)
{
    if(s == YourName)
    found = true;
}
if(found)
    Console.WriteLine("Your name is among the list");
else
    Console.WriteLine("Your name is not among the list");