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");