Как я могу получить каждый энный объект из Списка <T>?

Похоже, вы проделали долгий путь для выполнения этой задачи. Вы можете просто использовать DatePicker ( Android Date Picker Официальные документы

и установить диапазон выбора для даты, установить выбранную дату (пользователем) в TextView. событие щелчка.

Создать интерфейс.

public interface IOnItemClickListenerCountryStates {
    void onAgeClick(String Date);

}

107
задан Paul Suart 30 March 2009 в 12:15
поделиться

6 ответов

return list.Where((x, i) => i % nStep == 0);
180
ответ дан mqp 24 November 2019 в 03:37
поделиться

Походит

IEnumerator<T> GetNth<T>(List<T> list, int n) {
  for (int i=0; i<list.Count; i+=n)
    yield return list[i]
}

добился бы цели. Я не вижу потребность использовать Linq или лямбда-выражения.

Править:

Сделайте его

public static class MyListExtensions {
  public static IEnumerable<T> GetNth<T>(this List<T> list, int n) {
    for (int i=0; i<list.Count; i+=n)
      yield return list[i];
  }
}

и Вы пишете способом LINQish

from var element in MyList.GetNth(10) select element;

2-е Редактирование:

Сделать это еще большим количеством LINQish

from var i in Range(0, ((myList.Length-1)/n)+1) select list[n*i];
33
ответ дан Luc Morin 24 November 2019 в 03:37
поделиться

Я знаю, что это - "старая школа", но почему не только используют для цикла с продвижением = n?

37
ответ дан Michael Todd 24 November 2019 в 03:37
поделиться

Можно использовать, Где перегрузка, которая передает индекс наряду с элементом

var everyFourth = list.Where((x,i) => i % 4 == 0);
25
ответ дан JaredPar 24 November 2019 в 03:37
поделиться

Для цикла

for(int i = 0; i < list.Count; i += n)
    //Nth Item..
10
ответ дан Quintin Robinson 24 November 2019 в 03:37
поделиться

Я не уверен, возможно ли сделать с выражением LINQ, но я знаю, что можно использовать Where дополнительный метод, чтобы сделать это. Например, получить каждый пятый объект:

List<T> list = originalList.Where((t,i) => (i % 5) == 0).ToList();

Это получит первый объект и каждую пятую часть оттуда. Если Вы хотите запуститься в пятом объекте вместо первого, Вы соответствуете 4 вместо того, чтобы соответствовать 0.

3
ответ дан Guffa 24 November 2019 в 03:37
поделиться
Другие вопросы по тегам:

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