Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.10.2011, 10:43   #1
sir.andrey
Форумчанин
 
Регистрация: 06.12.2009
Сообщений: 380
Радость LINQ C#

Подскажите пожалуйста, почему ошибка?

Ошибка несоответствия типов, но я не пойму, почему.
Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;

namespace ConsoleApplication14
{

    class TempProjectionItem {

        public string Original{get;set;}

        public string Vowelles { get; set; }        

    }

    class Program
    {
        static void Main()
        {
            string[] names = { "Tom", "Dick", "Harry", "Mary", "Jay" };

            List<TempProjectionItem> temp =
            from n in names
                select new TempProjectionItem{ Original=n, Vowelles=n+"1" };
       }      
        
    }
}

Цитата:
Error 1 Cannot implicitly convert type 'System.Collections.Generic.IEnumer able<ConsoleApplication14.TempProje ctionItem>' to 'System.Collections.Generic.List<Co nsoleApplication14.TempProjectionIt em>'. An explicit conversion exists (are you missing a cast?) c:\documents and settings\admin\мои документы\visual studio 2010\Projects\ConsoleApplication14\ ConsoleApplication14\Program.cs 26 17 ConsoleApplication14
sir.andrey вне форума Ответить с цитированием
Старый 24.10.2011, 11:10   #2
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,119
По умолчанию

sir.andrey

Ошибка несоответствия типов, но я не пойму, почему.

потому что c# - язык со строгой типизацией.
Rififi вне форума Ответить с цитированием
Старый 24.10.2011, 12:19   #3
sir.andrey
Форумчанин
 
Регистрация: 06.12.2009
Сообщений: 380
Радость

Помогите пожалуйста исправить
sir.andrey вне форума Ответить с цитированием
Старый 24.10.2011, 14:54   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
List<TempProjectionItem> temp =
А может попробовать
Код:
var temp =
Ты скажи тебе зачем это нужно?
Ты потом в цикле проходится будешь?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 24.10.2011, 15:30   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

я в LINQ понимаю ещё меньше, чем чукча в апельсинах,
но если изменить так, то код компилируется и работает.

Код:
            var temp =
            from n in names
            select new TempProjectionItem { Original = n, Vowelles = n + "1" };
p.s. только не спрашивайте меня, почему и как преобразовать temp в список из TempProjectionItem...


p.p.s. если я неправ и подсказал фигню - прошу меня извинить (читайте начало моего поста)...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 24.10.2011, 15:35   #6
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,119
По умолчанию

...
а ведь всего-то достаточно было посмотреть текст ошибки и заметить, что линковские экстеншены возвращают тип IEnumerable<> ... :lol:

...
хотяв принципе советы правильные - если не понимаешь что делаешь, лепи везде var, авось прокатит. Вот так .Net завоевывает мир :D

кстати, костыль в виде TempProjectionItem не нужен, в linq-запросах и без того можно легко и непринужденно создавать анонимные типы.

Последний раз редактировалось Stilet; 24.10.2011 в 16:47.
Rififi вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Снова LINQ C# sir.andrey Помощь студентам 5 01.10.2011 09:10
LINQ C# sir.andrey Помощь студентам 5 29.09.2011 11:52
вопрос по LINQ kaljan775 C# (си шарп) 1 28.08.2011 17:49
LINQ и MySQL nec117 C# (си шарп) 5 13.05.2011 19:54
LINQ + MySQL tavrocotaps Базы данных (ADO.NET, LinqToSql, ORM Entity Framework, NHibernate) 2 20.07.2010 17:21