![]() |
|
Модераторы: gambit, Partizan |
![]()
|
|
| Resident |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 75 Регистрация: 25.9.2006 Репутация: нет Всего: 0 |
Не нашел таких методов в .NET. Есть только Math.Min() / Max() но они возвращают результат из двух чисел. Есть ли подобные функции для работы с массивами?
Это сообщение отредактировал(а) Resident - 3.4.2010, 21:23 |
|||
|
||||
| Fortnox |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 373 Регистрация: 31.10.2008 Где: Ростов-на-Дону Репутация: 2 Всего: 22 |
Resident, нет.
Да и не нужны они. Нахождение минимального/максимального/среднего значения пишутся за 10 секунд. |
|||
|
||||
| Resident |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 75 Регистрация: 25.9.2006 Репутация: нет Всего: 0 |
Сама функция то несложная. Я просто думал может есть в стандартной библиотеке. В PHP например есть такая функция. Поскольку таких функций стандартно нет, то как перегрузить System::Math::Max? Точнее наверное где именно нужно писать код перегрузки?
PS: Я только начинаю .NET изучать. |
|||
|
||||
| diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 16 Всего: 142 |
-------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит |
|||
|
||||
| Resident |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 75 Регистрация: 25.9.2006 Репутация: нет Всего: 0 |
Я так понимаю класс Enumerable находится в пространстве имен System.Linq, но у меня почему то нет такого пространства имен.
Это сообщение отредактировал(а) Resident - 4.4.2010, 00:09 |
||||
|
|||||
| Fortnox |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 373 Регистрация: 31.10.2008 Где: Ростов-на-Дону Репутация: 2 Всего: 22 |
Resident, LINQ нет в .Net Framework 2.0, он появился в 3 версии.
Нужно изменить версию .Net Framework проекта с 2.0 на 3.0 и добавить ссылку (Reference) на System.Data.Linq. |
|||
|
||||
| diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 16 Всего: 142 |
-------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит |
|||
|
||||
| Resident |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 75 Регистрация: 25.9.2006 Репутация: нет Всего: 0 |
В свойствах проекта стоит версия .NET Framework 3.5. Студия 2008. Добавил ссылку на System.Data.Linq - появилось пространство имен System::Data::Linq, но класса Enumerable там нет.
Это сообщение отредактировал(а) Resident - 4.4.2010, 00:58 |
|||
|
||||
| diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 16 Всего: 142 |
Добавь ссылку на System.Core.dll
И импортируй пространство System.Linq в код, тогда все методы появятся у в всех коллекций. Это сообщение отредактировал(а) diadiavova - 4.4.2010, 01:00 -------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит |
|||
|
||||
| Fortnox |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 373 Регистрация: 31.10.2008 Где: Ростов-на-Дону Репутация: 2 Всего: 22 |
Resident, он в пространстве System.Linq (System.Linq.Enumerable)
diadiavova, точно |
|||
|
||||
| Resident |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 75 Регистрация: 25.9.2006 Репутация: нет Всего: 0 |
Это помогло, спасибо! Это сообщение отредактировал(а) Resident - 4.4.2010, 01:13 |
|||
|
||||
| Resident |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 75 Регистрация: 25.9.2006 Репутация: нет Всего: 0 |
Правда, как использовать это дальше непойму. Метод System::Linq::Enumerable::Max() принимает не массив, а System::Collections::Generic::IEnumerable<double> ^ surce. Что это такое и как это использовать пока не разобрался. Создал переменную и передал ее в функцию Enumerable::Max()
Скомпилировалось без ошибок, но как данные добавить я что то не пойму. |
|||
|
||||
| diadiavova |
|
||||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 16 Всего: 142 |
В массивах реализован этот интерфейс, поэтому используй обычное приведение типов.
Вообще, если бы это писалось на шарпе, то там всё совсем просто, если массив называется x, то выражение выглядело бы так
Это сообщение отредактировал(а) diadiavova - 4.4.2010, 11:47 -------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит |
||||
|
|||||
| Resident |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 75 Регистрация: 25.9.2006 Репутация: нет Всего: 0 |
Не получается так в C++, как только не пробовал уже. :(
|
|||
|
||||
| Fortnox |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 373 Регистрация: 31.10.2008 Где: Ростов-на-Дону Репутация: 2 Всего: 22 |
Resident, System::Collections::Generic::IEnumerable - это интерфейс.
В качестве аргумента для методов класса Enumerable нужно указывать объект, который реализует данный интерфейс (грубо говоря, если у объекта есть метод GetEnumerator()) Не надо прямо создавать объект типа IEnumerable, можно просто объявить массив. Пример:
|
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Разработка Windows Forms | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |