如何将数组的每个部分通过测试以返回输出?

时间:2019-01-03 15:27:23

标签: c# arrays loops

我正在尝试通过下面的NHS数字检查器代码检查testData。如何测试数组的每个部分并获取输出?

 using System;
public class Program
{
public static void Main()
{
    {
        //Test loop


        string[] testData = { "1234567890", "4444444444", "7777777777", "77777777", "BRADLEYPAU" };
        foreach (string s in testData)
        {

            Console.WriteLine();
        }
    }



    Boolean returnValue;
    String NHSNumber;
    //NHSNumber = "9051292074";
    NHSNumber = "7777777777";
    //NHSNumber = "9434765919";
    //NHSNumber = "PAULBRADLE";
    returnValue = isNHSValid(NHSNumber);

    if (returnValue == true)
    {
        Console.WriteLine(NHSNumber + " looks good");
    }
    else
    {
        Console.WriteLine(NHSNumber + " is invalid!");
    }
}
public static Boolean isNHSValid(string numberToCheck)
{
    if (numberToCheck.Length != 10)
    {
        Console.WriteLine(numberToCheck + " is too long!");
        return false;
    }

    long v;
    if (Int64.TryParse(numberToCheck, out v) == false)
    {
        Console.WriteLine(numberToCheck + " contains non numbers!");
        return false;
    }

我尝试了其他示例,这些示例已被注释掉并且它们起作用。但是现在我不知道如何对数组执行相同的操作。

2 个答案:

答案 0 :(得分:0)

就像comments中提到的那样,请使用您创建的循环遍历数组中的每个string。然后将每个string传递到isNHSValid

   string[] testData = { "1234567890", "4444444444", "7777777777", "77777777", "BRADLEYPAU" };
   foreach (string NHSNumber in testData)
   {
       bool returnValue;
       returnValue = isNHSValid(NHSNumber);

       if (returnValue == true)
       {
           Console.WriteLine(NHSNumber + " looks good");
       }
       else
       {
           Console.WriteLine(NHSNumber + " is invalid!");
       }
       Console.WriteLine();
   }

答案 1 :(得分:0)

理想情况下,您可以将测试放入单元测试项目中并调用验证代码。

现在,您可以将测试代码移至for循环(或其他函数)中。 (它也会略作简化):

$('#test').html().replace(/ /gi,''); // only removes   but not tags