Beginner_1007 Ответов: 1

Как не удается неявно преобразовать тип System.коллекции.универсальный.интерфейс IEnumerable в<строка> У' к `системе.коллекции.универсальный.интерфейс IEnumerable и Л;int> У'.я тоже...


Я получаю эту ошибку для - "select v. VehicleName;"

Что я уже пробовал:

namespace LinqApp1                //DO NOT CHANGE the namespace name
{
    
    public class Program         //DO NOT CHANGE the class name
    {
        /** DO NOT CHANGE this 'List' declaration with initialized values  **/
        public static List<Vehicle> vehicleList = new List<Vehicle>()
                                {
                                    new Vehicle("HO345","CRV","Honda",2015),
                                    new Vehicle("HY562","Creta","Hyundai",2017),
                                    new Vehicle("RE198","Duster","Reanult",2014),
                                    new Vehicle("MA623","Spacio","Suzuki",2014),
                                    new Vehicle("TR498","Nexon","Tata",2015),
                                    new Vehicle("TR981","Zest","Tata",2016),
                                    new Vehicle("HO245","WRV","Honda",2018)

                                };

        static void Main(string[] args)   //DO NOT Change this 'Main' signature
        {
            int fromy,toy;
            Console.Write("Enter From Year : ");
            fromy = int.Parse(Console.ReadLine());
            Console.Write("Enter To Year : ");
            toy = int.Parse(Console.ReadLine());
            getVehicleName(fromy,toy);
        }

        public static void getVehicleName(int fromYear, int toYear)
        {
            IEnumerable<int> L = from v in vehicleList
            where v.ReleaseYear >= fromYear && v.ReleaseYear <= toYear
            select v.VehicleName; 
            
        }

1 Ответов

Рейтинг:
1

OriginalGriff

Вы не можете привести коллекцию строк к коллекции целых чисел, так же как вы не можете относиться к магазину, полному Ferrari, как к магазину, полному Harley Davidson. Это совсем не одно и то же, и вы не можете относиться к одному как к другому.

А в вашем случае это еще хуже, потому что фактические значения, которые вам нужно будет преобразовать, никоим образом не могут рассматриваться как числа, если только все ваши названия транспортных средств не являются "7" или "980" - они не являются числовыми значениями: "CRV", "Duster", "Zest"...

Однако есть еще пара вещей - ваш метод getVehicleName который пытается это сделать, ничего не возвращает, так что все равно все выбрасывается! Но это не имеет значения, потому что ваш код, который вызывает его из Main в любом случае он не использует никакого возвращаемого значения...

Вам нужно перестать паниковать и бросать код вместе, а сесть и подумать о том, чего вы пытаетесь достичь, и решить, как вам это нужно сделать. Прыгать прямо в код-не очень хорошая идея, и это каждый раз проявляется в результате.