Модераторы: Partizan, gambit

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> массив элементов 
:(
    Опции темы
granit1986
Дата 13.12.2008, 08:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 110
Регистрация: 17.6.2008

Репутация: нет
Всего: нет



блин, я же задал конкретный вопрос - как сделать через массив!!! если я спросил так, значит мне ТАК надо!
PM MAIL   Вверх
source777
Дата 13.12.2008, 14:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1878
Регистрация: 12.3.2007

Репутация: 3
Всего: 56



Цитата(granit1986 @  13.12.2008,  08:27 Найти цитируемый пост)
блин, я же задал конкретный вопрос - как сделать через массив!!! если я спросил так, значит мне ТАК надо! 
Ты кстати даже не ответил на вопрос зачем это может понадобится, след. ты сам не знаешь, что тебе надо...
А с формулировкой "мне ТАК надо" тебе не на форум, а в платную тех. поддержку обращаться надо, а на форуме, если повезёт, тебе подскажут как правильно, а не как тебе "надо"(в этот раз тебе повезло - подсказали как делать правильно, но ты этого абсолютно не оценил)... 

Это сообщение отредактировал(а) source777 - 13.12.2008, 14:26


--------------------
Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте
PM MAIL   Вверх
okaton
Дата 13.12.2008, 16:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 213
Регистрация: 24.11.2006

Репутация: нет
Всего: нет



 smile объясните неопытному, а что такое написал PashaPash и как это использовать. Если можно не слишком умничая smile 
PM MAIL   Вверх
nagg
Дата 13.12.2008, 19:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 112
Регистрация: 6.1.2008
Где: Minsk

Репутация: 4
Всего: 4



Цитата(okaton @ 13.12.2008,  16:53)
smile объясните неопытному, а что такое написал PashaPash и как это использовать. Если можно не слишком умничая smile

написал расширяющие методы для обьекта формы (или иного контейнера) для получения однотипных контролов в виде массива, что и требовалось создателю сабжа...
Собсно курить в сторону Extension Method's, lambda-expressions...
--------------------
I am the State...
PM MAIL WWW ICQ Skype   Вверх
okaton
Дата 13.12.2008, 22:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 213
Регистрация: 24.11.2006

Репутация: нет
Всего: нет



nagg Некоторые человеки, например я, которые не часто курят, с одного перекура не вкурятся в это

Цитата

написал расширяющие методы для обьекта формы (или иного контейнера) для получения однотипных контролов в виде массива, что и требовалось создателю сабжа...
Собсно курить в сторону Extension Method's, lambda-expressions... 


видимо мы курим разную траву.

Можно про использование и определение еще по проще, на пальцах. Типа это туда, это сюда... Я серьезно. Я и все те которые еще не вкурились будут очень благодарны! Ну в самом деле, если вы решились помочь, затратьте на 30 секунд по больше, ответьте более широко. А то глядя на ваш ответ, мне остается только восхищаться вашим мастерством и моим тупизмом, срочно удалить студию, сжечь книжку и никогда не произносить слово программирование...

Это сообщение отредактировал(а) okaton - 13.12.2008, 22:08
PM MAIL   Вверх
nagg
  Дата 13.12.2008, 23:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 112
Регистрация: 6.1.2008
Где: Minsk

Репутация: 4
Всего: 4



Цитата(okaton @ 13.12.2008,  22:07)
nagg Некоторые человеки, например я, которые не часто курят, с одного перекура не вкурятся в это

Цитата

написал расширяющие методы для обьекта формы (или иного контейнера) для получения однотипных контролов в виде массива, что и требовалось создателю сабжа...
Собсно курить в сторону Extension Method's, lambda-expressions... 


видимо мы курим разную траву.

Можно про использование и определение еще по проще, на пальцах. Типа это туда, это сюда... Я серьезно. Я и все те которые еще не вкурились будут очень благодарны! Ну в самом деле, если вы решились помочь, затратьте на 30 секунд по больше, ответьте более широко. А то глядя на ваш ответ, мне остается только восхищаться вашим мастерством и моим тупизмом, срочно удалить студию, сжечь книжку и никогда не произносить слово программирование...

Держите себя в руках. вот вам статейка http://www.rsdn.ru/article/csharp/Csharp3_Linq.xml - тут всё "на пальцах" последовательно изложено про фичи 3его фраемворка, включая злобные расширяющие методы - после этой статьи понять коды товарища ПашиПаш не составит труда
--------------------
I am the State...
PM MAIL WWW ICQ Skype   Вверх
okaton
Дата 14.12.2008, 00:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 213
Регистрация: 24.11.2006

Репутация: нет
Всего: нет



nagg, спасибо smile
PM MAIL   Вверх
PashaPash
Дата 14.12.2008, 12:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1233
Регистрация: 3.1.2008

Репутация: 9
Всего: 49



okaton, кстати, yield появился еще во 2-м C#. Общая цепочка примерно такая:
1. нужно перебрать все контролы определенного типа - значит foreach по Controls.
2. перебрать - значит возвращает IEnumerable
3. все - значит с рекурсией
4. раз возвращает IEnumerable - можно не искать сразу все контролы, а возвращать по одному, по мере того как вызывающий код идет по результату.
5. определенного типа - значит generic method
6. топикастер не указал версию .net - значит 3.5, можно написать метод расширения, и не передавать лишний параметр при вызове.
7. топикастер не знает, но ему понадобится возможность отсеивать "левые" результаты - значит передаем предикат.
Берешь пустой класс, идешь по пунктам - получаешь примерно такой результат.


--------------------
PM MAIL WWW   Вверх
nagg
Дата 14.12.2008, 15:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 112
Регистрация: 6.1.2008
Где: Minsk

Репутация: 4
Всего: 4



Цитата(PashaPash @ 14.12.2008,  12:39)
okaton
6. топикастер не указал версию .net - значит 3.5, можно написать метод расширения, и не передавать лишний параметр при вызове.

для использования расширяющих методов не обязателен таргет фраемворк 3.5 - можно обойтись и 2.0ым (правда, для этого придётся чуть-чуть схитрить)
--------------------
I am the State...
PM MAIL WWW ICQ Skype   Вверх
okaton
Дата 14.12.2008, 15:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 213
Регистрация: 24.11.2006

Репутация: нет
Всего: нет



PashaPash, спасибо вам большое (+), не знаю как другие, а я буду использовать.

Раньше пользовался таким методом:
Код

private void InitializeComponent()
   {       this.dataGridViewarray = new System.Windows.Forms.DataGridView[2]; ...}   
   #endregion   
   private System.Windows.Forms.DataGridView[] dataGridViewarray;

   public Form1()
   {
       InitializeComponent();            
       dataGridViewarray[0] = dataGridView1;
       dataGridViewarray[1] = dataGridView2;
   }


Если не затруднит, скажите пожалуйста, а как его подключить и вызвать. До ссылки (если там это описано) nagg, я еще не добрался...

nagg может я спрошу какую-то глупость, а что такое топикастер? Якая хытрость существует? Договаривайте, не томите smile

Это сообщение отредактировал(а) okaton - 14.12.2008, 16:23
PM MAIL   Вверх
source777
Дата 14.12.2008, 19:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1878
Регистрация: 12.3.2007

Репутация: 3
Всего: 56



Цитата(okaton @  14.12.2008,  15:44 Найти цитируемый пост)
может я спрошу какую-то глупость, а что такое топикастер?
Тот, кто создал тему, ну или по английски "стартанул топик"  smile 

Цитата(okaton @  14.12.2008,  15:44 Найти цитируемый пост)
Если не затруднит, скажите пожалуйста, а как его подключить и вызвать.
Смотри моё сообщение выше, я там привёл пример использования.



--------------------
Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте
PM MAIL   Вверх
okaton
Дата 14.12.2008, 20:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 213
Регистрация: 24.11.2006

Репутация: нет
Всего: нет



source777, про топикастер  smile , улыбнуло, спасибо.
Цитата

Смотри моё сообщение выше, я там привёл пример использования.

Я не спрашивал про использование. 

Я спрашивал про подключение, встраивается непосредственно в мой код, или в (не знаю как по другому назвать) "файл" и его подключить к проекту. И еще я спросил про вызов (ну и заодно связь).
PM MAIL   Вверх
source777
Дата 14.12.2008, 20:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1878
Регистрация: 12.3.2007

Репутация: 3
Всего: 56



Цитата(okaton @  14.12.2008,  20:41 Найти цитируемый пост)
source777, про топикастер  smile , улыбнуло, спасибо.
Кстати только сейчас заметил, что в слове пропущено несколько букв, правильно пишется топикстартер.

Цитата(okaton @  14.12.2008,  20:41 Найти цитируемый пост)
Я не спрашивал про использование. 

Я спрашивал про подключение, встраивается непосредственно в мой код, или в (не знаю как по другому назвать) "файл" и его подключить к проекту. И еще я спросил про вызов (ну и заодно связь). 
Просто добавь к проекту файл с кодом:
Код

using System;
using System.Collections.Generic;
using System.Windows.Forms;
namespace SomeUselessUtils
{
    public static class ControlExtenders
    {
        public static void ForEach<T>(this IEnumerable<T> list, Action<T> action)
        {
            foreach (var item in list) action(item);
        }

        public static IEnumerable<Control> FindControls<T>(this Control parent)
            where T : Control
        {
            return parent.FindControls<T>(null);
        }
        public static IEnumerable<Control> FindControls<T>(this Control parent, Predicate<T> condition) 
            where T : Control
        {
            foreach (Control child in parent.Controls)
            {
                T controlToCheck = child as T;
                if (controlToCheck != null && (condition == null || condition(controlToCheck)))
                {
                    yield return controlToCheck;
                }
                foreach (Control deepChild in child.FindControls<T>(condition))
                {
                    yield return deepChild;
                }
            }
        }
    }
}


Ну а в файле, из которого ты хочешь перебирать компоненты, добавь:
using SomeUselessUtils;

Всё, можно приступать к использованию, про которое ты не спрашивал...


--------------------
Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте
PM MAIL   Вверх
QryStaL
Дата 14.12.2008, 20:52 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Intellectual feast
**


Профиль
Группа: Участник
Сообщений: 914
Регистрация: 30.11.2005

Репутация: 10
Всего: 32



okaton, судя по вашим вопросам, для начала было бы неплохо почитать основы .NET, прежде чем браться за extension methods и lambda expressions.
Кроме того, ответ уже был дан
Цитата(source777 @  12.12.2008,  23:49 Найти цитируемый пост)
помести в статический класс в области видимости



--------------------
I don't need a reason being who I am...
PM MAIL ICQ   Вверх
okaton
Дата 14.12.2008, 20:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 213
Регистрация: 24.11.2006

Репутация: нет
Всего: нет



QryStaL, это ветка для новичков (еще) или я что-то путаю? а с умничать может любой, особенно в интернете  smile  
PM MAIL   Вверх
Страницы: (3) Все 1 [2] 3 
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | .NET для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0644 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.