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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.06.2016, 11:21   #21
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Сообщение от Дима85 Посмотреть сообщение
Кстати, хотелось бы ещё выделить отдельно код для изменения длины комбинаций, я хочу связать его с другими чекбоксами, допустим включив на форме один чекбокс, поиск вёлся по тройкам, выбрав другой, то по четвёркам.
вы не можете в завимости от чекбокса передать в GenerateCombinations иное число?
(туда можно и переменную пихнуть, и выражение)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 12.06.2016, 11:37   #22
Дима85
Пользователь
 
Регистрация: 11.06.2016
Сообщений: 20
По умолчанию

Что-то не так, VS подчеркнул мне ошибки, я их подписал:
Код:
private void button1_Click(object sender, EventArgs e)
        {
            tb.Where(t => t.Enabled).Select(t =>
            {
                var arr = t.Split(' '); // TextBox не содержит определения для Split или не был найден метод расширения Split
                var res = new List<int>();
                foreach (var val in arr) // Подчеркнут var, пишет - обнаружен недостижимый код
                {
                    int i;
                    if (int.TryParse(val, out i))
                        res.Add(i);
                }
                return res.ToArray();
            }).SelectMany(a => GenerateCombinations(2, a)).
                GroupBy(f => string.Join(", ", f)).
                Select(g => new { Count = g.Count(), Key = g.Key, Fragment = g.First() }).
                OrderByDescending(g => g.Count).ToArray();
            var first = sorted.First(); // пишет что sorted не существует в данном контексте
        }
    }
}
Дима85 вне форума Ответить с цитированием
Старый 12.06.2016, 17:34   #23
Дима85
Пользователь
 
Регистрация: 11.06.2016
Сообщений: 20
По умолчанию

Не поможете? С sorted вроде разобрался, я приравнял его к tb.Where (не знаю правильно ли это):
Код:
var sorted = tb.Where(t => t.Enabled).Select(t =>
            {
                var arr = t.Split(' '); // TextBox не содержит определения для Split или не был найден метод расширения Split
                var res = new List<int>();
                foreach (var val in arr) // Подчеркнут var, пишет - обнаружен недостижимый код
                {
                    int i;
                    if (int.TryParse(val, out i))
                        res.Add(i);
                }
                return res.ToArray();
            }).SelectMany(a => GenerateCombinations(2, a)).
                GroupBy(f => string.Join(", ", f)).
                Select(g => new { Count = g.Count(), Key = g.Key, Fragment = g.First() }).
                OrderByDescending(g => g.Count).ToArray();
            var first = sorted.First(); // Пишет что sorted не существует в данном контексте
А с первой ошибкой и с недостижимым кодом во второй не могу разобраться. На форумах тоже не могут помочь. Извините, что надоедаю.
Дима85 вне форума Ответить с цитированием
Старый 12.06.2016, 18:04   #24
Дима85
Пользователь
 
Регистрация: 11.06.2016
Сообщений: 20
По умолчанию

Вроде всё исправил и вроде всё работает. )
Код:
private void button1_Click(object sender, EventArgs e)
        {
            var sorted = tb.Where(t => t.Enabled).Select(t =>
            {
                var arr = t.Text.Split(' '); // TextBox не содержит определения для Split или не был найден метод расширения Split
                var res = new List<int>();
                foreach (var val in arr) // Подчеркнут var, пишет - обнаружен недостижимый код
                {
                    int i;
                    if (int.TryParse(val, out i))
                        res.Add(i);
                }
                return res.ToArray();
            }).SelectMany(a => GenerateCombinations(2, a)).
                GroupBy(f => string.Join(", ", f)).
                Select(g => new { Count = g.Count(), Key = g.Key, Fragment = g.First() }).
                OrderByDescending(g => g.Count).ToArray();
            var first = sorted.First(); // Пишет что sorted не существует в данном контексте
            //сами выведите куда надо. first та самая комбинация
            label1.Text = first.Key;
            label2.Text = first.Count.ToString();
        }
Спасибо большое за помощь, без Вас бы не справился. ;-)
Дима85 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывод случайных не повторяющихся чисел в Stringgrid Heng Помощь студентам 12 07.10.2012 16:59
Поиск повторяющихся символов RNR Общие вопросы Delphi 1 25.06.2012 02:43
Определение количества повторяющихся чисел в строке Tidus Microsoft Office Excel 11 13.12.2010 23:36
поиск повторяющихся элементов в матрице I_newbie Помощь студентам 2 15.03.2010 22:44
Поиск повторяющихся значений Flangini Microsoft Office Excel 23 22.02.2008 15:57