我想检查用户是否使用数组输入两次相同的字符串。你不知道使用什么代码可以提出什么建议吗?
如果用户输入“1A”两次我要打印“已经拍摄”,如果用户输入的字符串不在我的数组(arr)中,我想打印“无效输入”
这是我的数组
string[,] arr = new string[,]
{
{"1A","2A","3A","4A","5A"},
{"1B","2B","3B","4B","5B"},
{"1C","2C","3C","4C","5C"},
{"1D","2D","3D","4D","5D"},
};
答案 0 :(得分:3)
您可以使用HashSet<string>
检查是否存在重复项:
var set = new HashSet<string>();
bool noDuplicate = arr.Cast<string>().All(set.Add);
答案 1 :(得分:2)
您可以使用Set
,例如HashSet<String>
:
HashSet<String> hs = new HashSet<string>();
foreach(var item in arr)
if (!hs.Add(item)) {
// User used "item" at least twice
break;
}
答案 2 :(得分:1)
您可以尝试使用LINQ,如下所示:
var query = arr.GroupBy(x=>x)
.Where(g=>g.Count()>1)
.ToList();
答案 3 :(得分:1)
您可以尝试:
HashSet<String> hash = new HashSet<string>();
string input = "TEST";
bool found = false;
foreach(string item in arr)
{
if (item.Equals(input))
{
if (hash.Contains(item))
{
Console.WriteLine("Already Taken");
}
else
{
hash.Add(item);
}
found = true;
break;
}
}
if (!found)
{
Console.WriteLine("Invalid Input");
}