Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无法从“字符串”转换为“system.collections.generic.list”_C# - Fatal编程技术网

C# 无法从“字符串”转换为“system.collections.generic.list”

C# 无法从“字符串”转换为“system.collections.generic.list”,c#,C#,我正在努力进行程序设计练习。我必须调用该方法,但当我将鼠标悬停在ConcertiveInput上方时,它会显示: 无法从“字符串”转换为“system.collections.generic.list” 我不知道如何绕过它,因为坦率地说,我不知道如何将字符串转换为system.collections.generic.list。这是我使用的代码: using System; using System.Collections.Generic; namespace HelloWorld {

我正在努力进行程序设计练习。我必须调用该方法,但当我将鼠标悬停在ConcertiveInput上方时,它会显示:

无法从“字符串”转换为“system.collections.generic.list”

我不知道如何绕过它,因为坦率地说,我不知道如何将字符串转换为system.collections.generic.list。这是我使用的代码:

using System;
using System.Collections.Generic;

namespace HelloWorld
{
    internal class Program
    {
        public static void Main(string[] args)
        {
            Console.Write("Enter a few numbers (eg 1-2-3-4): ");
            var input = Console.ReadLine();
            Console.WriteLine(Consecutive(input));
        }

        public static bool Consecutive(List<int> input)
        {
            var numbers = new int[input.Count];
            input.CopyTo(numbers);
            Array.Sort(numbers);
            for (var i = 1; i < numbers.Length; i++)
            {
                if (numbers[i] != numbers[i - 1] + 1)
                    return false;
            }
           return true;
        }
     }
 }
返回字符串而不是整数列表。您需要将此字符串转换为列表,并将其传递给ConcertiveList函数


您需要将字符串转换为列表

var input = Console.ReadLine();
var inputs = input.Split("-").Select(int.Parse).ToList();
Console.WriteLine(Consecutive(inputs));

您需要将输入解析为列表。。。尝试按“-”拆分,然后使用parse from int classlike input.split“-”。使用LINQ@PrasadTelkikar我现在意识到这与这个主题并不相关,但这是我第一次使用这个术语。我在udemy中做了这个题为“那样”的练习。一般来说,当你接受用户的输入时,你应该认为输入常常是错误的。如果您使用int.parse解析整数,如果您解析的字符串不是整数,并且用户输入错误不是异常循环实例,那么它将引发异常。考虑使用I.TyPARSE代替.@ FielDo57当我将它更改为TyPaySe时,我得到另一个说法:方法数组的类型参数。
//This feature is available from C#7. 
//Here if input string fails to parse string to int, it will store 0  as default.
var processedInput = Array.ConvertAll(
          input.Split('-'), x => int.TryParse(x, out var i) ? i : 0)
          .ToList();
var input = Console.ReadLine();
var inputs = input.Split("-").Select(int.Parse).ToList();
Console.WriteLine(Consecutive(inputs));