C# 无法从“字符串”转换为“system.collections.generic.list”
我正在努力进行程序设计练习。我必须调用该方法,但当我将鼠标悬停在ConcertiveInput上方时,它会显示: 无法从“字符串”转换为“system.collections.generic.list” 我不知道如何绕过它,因为坦率地说,我不知道如何将字符串转换为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 {
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));