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

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

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.07.2011, 17:24   #1
the_deer_one
Участник клуба
 
Аватар для the_deer_one
 
Регистрация: 04.04.2010
Сообщений: 1,554
По умолчанию Тип возвращаемый оператором from.

Если я хочу отобрать значения в коллекцию нужного мне типа, что мне нужно сделать?
Код:
            int[] a = { 1, 2, 3, 4, 5 };
            int[] b = from i in a
                      select i;
Cannot implicitly convert type System.Collections.Generic.IEnumera ble<int>' to 'int[]'. An explicit conversion exists (are you missing a cast?)
У меня такое ощущение что в сообщении об ошибке компилятор на что-то уклончиво намекает.
the_deer_one вне форума Ответить с цитированием
Старый 07.07.2011, 17:39   #2
akasex
Форумчанин Подтвердите свой е-майл
 
Аватар для akasex
 
Регистрация: 31.03.2008
Сообщений: 179
По умолчанию

Код:
var t = from i in a select i;
int[] b = t.ToArray(); //(int[])t;
akasex вне форума Ответить с цитированием
Старый 07.07.2011, 18:13   #3
Hollander
Участник клуба
 
Аватар для Hollander
 
Регистрация: 03.05.2007
Сообщений: 1,189
По умолчанию

Чтобы заработал твой код:
Код:
int[] a = { 1, 2, 3, 4, 5 };
IEnumerable<int> b = from i in a select i;
Но лично я бы использовал вариант akasex

P.S. полезные ссылки по LINQ
http://msdn.microsoft.com/ru-ru/libr...(v=vs.90).aspx
http://msdn.microsoft.com/en-us/vcsharp/aa336746
Hollander вне форума Ответить с цитированием
Старый 07.07.2011, 19:41   #4
the_deer_one
Участник клуба
 
Аватар для the_deer_one
 
Регистрация: 04.04.2010
Сообщений: 1,554
По умолчанию

нее нее нее
Вопрос в том, что я хочу в int[] сразу.
the_deer_one вне форума Ответить с цитированием
Старый 07.07.2011, 21:27   #5
Spawn™Production®
Форумчанин
 
Аватар для Spawn™Production®
 
Регистрация: 06.05.2011
Сообщений: 287
По умолчанию

Цитата:
Вопрос в том, что я хочу в int[] сразу.
int[] и IEnumerable<int> - абсолютно разные вещи.
Как уже показали выше, чтобы из IEnumerable получить массив, придётся поднимать ToArray()
Spawn™Production® вне форума Ответить с цитированием
Старый 08.07.2011, 09:20   #6
the_deer_one
Участник клуба
 
Аватар для the_deer_one
 
Регистрация: 04.04.2010
Сообщений: 1,554
По умолчанию

Вообще можно сразу, в один приём.
Код:
            int[] a = { 1, 2, 3, 4, 5 };
            int[] b = (from i in a
                      select i).ToArray();
Правда с таким синтаксисом, что наверное лучше не нужно.
the_deer_one вне форума Ответить с цитированием
Старый 09.07.2011, 00:03   #7
Spawn™Production®
Форумчанин
 
Аватар для Spawn™Production®
 
Регистрация: 06.05.2011
Сообщений: 287
По умолчанию

Цитата:
Правда с таким синтаксисом, что наверное лучше не нужно.
Ну, зависит от ситуации, но вообще подобный код за уши притянут
Spawn™Production® вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
программа с оператором case marmarmar Паскаль, Turbo Pascal, PascalABC.NET 2 27.02.2011 16:45
указать возвращаемый тип функции )) vedro-compota Общие вопросы Delphi 4 23.04.2010 09:17
проблема с оператором for vakyla Общие вопросы Delphi 9 24.03.2009 20:07
проблемы с оператором Length Picaso18 Паскаль, Turbo Pascal, PascalABC.NET 1 21.01.2009 18:40