在C#上添加整数列表

时间:2018-09-28 19:31:23

标签: c#

我正在做一个练习,要求有人输入数字列表,然后当他们输入“确定”时,程序将添加他们输入的数字列表。现在,无论添加多少个数字,我的程序都将返回0。我怀疑问题出在最后三行代码,但无法弄清楚我在做什么错。 对不起,代码效率低下。这只是我的第三天学习,因此我正在尝试以一种对我来说有意义的方式对其进行格式化,尽管我知道这样做的效率更高。

def daterange(start_date, end_date):
    for n in range(int ((end_date - start_date).days)):
        yield start_date + timedelta(n)

3 个答案:

答案 0 :(得分:5)

您的问题在这里:

const item = [
    { $value: "John", $key: "fname" },
    { $value: "McEnroe", $key: "lname" }    
];

const user = Object.assign(...item.map(o => ({[o.$key]: o.$value})));

console.log(user);

您正在创建一个名为bool IsNumber = Int32.TryParse(text, out ignoreMe); if (isNumber) { // rest of code omitted 的新变量以捕获IsNumber的返回值,但是您正在检查{{1}中的原始变量int.TryParse的值}条件。相反,您应该将结果分配给原始变量:

isNumber

请注意,由于只使用了一次,您实际上根本不需要声明变量即可捕获该结果。您可以将if调用放在isNumber = Int32.TryParse(text, out ignoreMe); if (isNumber) { // rest of code omitted 条件内:

TryParse

答案 1 :(得分:1)

问题是您将值解析为ignoreMe。然后,将numberNum添加到列表中。 numberNum的初始值为0,并且从未更改过。 该代码应该对您有用:

static void Main(string[] args)
{
    bool isOk = new bool();
    var listOfNumbers = new List<string>();
    string text;

    int numberNum;
    var listOfNumbersNum = new List<int>();

    while (!isOk)
    {
        Console.WriteLine("Enter a number, or ok to finish");
        text = Console.ReadLine();
        bool isNumber = Int32.TryParse(text, out numberNum);
        if (isNumber)
        {
            listOfNumbersNum.Add(numberNum);
        }
        else
        {
            if (text.Equals("ok", StringComparison.OrdinalIgnoreCase))
            {
                int sumOfNumbers = listOfNumbersNum.Sum();
                Console.WriteLine(sumOfNumbers);
                isOk = true;
            }

        }

    }
}

答案 2 :(得分:1)

首先犯错

bool IsNumber = Int32.TryParse(text, out ignoreMe);
if (isNumber)

IsNumber和isNumber不是同一回事

相同的代码稍有变化

static void Main(string[] args)
{
    var isOk = false;
    var listOfNumbersNum = new List<int>();

    while (!isOk)
    {
        Console.WriteLine("Enter a number, or ok to finish");
        var text = Console.ReadLine();
        var isNumber = int.TryParse(text, out var numberNum);
        if (isNumber)
        {
            listOfNumbersNum.Add(numberNum);
        }
        else
        {
            if (text != null && text.Equals("ok", StringComparison.OrdinalIgnoreCase))
            {
                var sumOfNumbers = listOfNumbersNum.Sum();
                Console.WriteLine("Result of sum: " + sumOfNumbers);
                isOk = true;
            }
        }
    }

    Console.WriteLine("Press any key to exit");
    Console.ReadLine();
}