'Для Каждого' итеративного количества VB.NET

Если вы ищете метод, а не магическую функцию, которая уже существует, то, честно говоря, лучшего способа нет. Мы все могли бы написать фрагменты кода с умными трюками для ограниченного набора символов, но в конце дня в какой-то момент вы должны преобразовать символы.

Лучший подход для этого преобразования - сделать это до сравнения. Это дает вам большую гибкость, когда речь идет о схемах кодирования, о которых ваш действительный оператор сравнения должен не знать.

Конечно, вы можете «скрыть» это преобразование за своей собственной строковой функцией или классом, но вам все равно нужно преобразовать строки перед сравнением.

11
задан Peter Mortensen 27 November 2013 в 11:41
поделиться

5 ответов

К сожалению, вам придется делать это самостоятельно. Конструкция For Each использует реализацию интерфейса IEnumerator для итерации последовательности, а интерфейс IEnumerator не предоставляет никаких элементов, чтобы указать его положение или текущий индекс в пределах последовательность.

9
ответ дан 3 December 2019 в 04:14
поделиться

Тебе придется сделать это самому. В основном, если вы выполняете For Each (foreach в C #), то вам не важно количество итераций.

2
ответ дан 3 December 2019 в 04:14
поделиться

Циклы Foreach для каждого элемента M, который он находит в коллекции элементов M.

Итак, нет, здесь нет явного количества итераций, как в цикле FOR.

0
ответ дан 3 December 2019 в 04:14
поделиться

Если мне нужна переменная итератора, я использую вместо этого цикл for (каждый IEnumerable должен иметь свойство .Count).

Вместо

For Each element as MyType in MyList
    ....
Next

напишите

For i as integer = 0 to MyList.Count - 1
    element = MyList(i)
    ....
Next

, что будет таким же результатом. У вас есть i в качестве итератора, а элемент содержит текущий элемент.

8
ответ дан 3 December 2019 в 04:14
поделиться

Если вы используете Visual Studio 2009 (или VB.Net 9.0), вы можете использовать переопределение Select, чтобы получить счетчик значений.

For Each cur in col.Select(Function(x,i) New With { .Index = i, .Value = x })
 ...
Next
6
ответ дан 3 December 2019 в 04:14
поделиться
Другие вопросы по тегам:

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