检查用户是否使用数组输入相同的字符串两次

时间:2014-10-13 12:28:54

标签: c# arrays

我想检查用户是否使用数组输入两次相同的字符串。你不知道使用什么代码可以提出什么建议吗?

如果用户输入“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"},
        };

4 个答案:

答案 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");
  }