как получить вторую запись в linq к sql

Вам нужен рекурсивный поиск вашего контроля внутри всех элементов управления формы. Посмотрите , который принял ответ , который реализует очень хороший рекурсивный подход.

Делая это:

frm.Controls.OfType

вы ищете только в первом слое элементов управления ваших форм, так что если у вас есть кнопка внутри панели или другого элемента (99,999999% ситуаций ) ваш foreach не может его найти.

Принятие принятого ответа на ваш вопрос:

public IEnumerable GetAll(this Control control,Type type)
{
    var controls = control.Controls.Cast();

    return controls.SelectMany(ctrl => ctrl.GetAll(type))
                              .Concat(controls)
                              .Where(c => c.GetType() == type);
}

[...]

foreach (Button btn in frm.GetAll(typeof(Button)))
    {
        btn.BackColor = btnColor;
    }

L-

15
задан Woodrow Barlow 20 March 2018 в 18:25
поделиться

4 ответа

Вы можете попробовать это:

var query=data.Skip(1).Take(1);
33
ответ дан 1 December 2019 в 00:18
поделиться

Если вы используете

.Take(2)

, вы получите первое и второе.

РЕДАКТИРОВАТЬ- Если вам нужны и первое, и второе, то вышеприведенное будет более эффективным, чем выполнение вашего запроса дважды :

.Take(1)
.Skip(1).Take(1)
3
ответ дан 1 December 2019 в 00:18
поделиться

Выберите top 2, затем выберите второй элемент.

1
ответ дан 1 December 2019 в 00:18
поделиться

Использовать метод .Skip (1)

0
ответ дан 1 December 2019 в 00:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: