5 / 5 / 4
Регистрация: 11.10.2014
Сообщений: 57
|
||||||
1 | ||||||
Jugged (ступенчатые) массивы: Вместо двух циклов for использовать один foreach11.10.2014, 14:49. Показов 2400. Ответов 15
Метки нет Все метки)
(
Приветствую.
В одном из курсов по программированию на C# есть тема про ступенчатые массивы. В качестве дополнительного задания к уроку предлагается изменить программу, вместо двух циклов for использовать один foreach... Я всю голову сломал, как это можно сделать без применения SelectMany, т.к. это только 4 урок и данный метод не изучался.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
|
|
11.10.2014, 14:49 | |
Ответы с готовыми решениями:
15
Как использовать один запрос вместо двух? Использовать один блок try{} вместо двух, сохраняя производительность Связанный список - использовать в функции один указатель вместо двух
|
202 / 171 / 67
Регистрация: 04.10.2014
Сообщений: 839
|
||||||
11.10.2014, 15:21 | 2 | |||||
что то типа
0
|
Заблокирован
|
||||||
11.10.2014, 15:35 | 3 | |||||
CSharp_user, нельзя, все равно надо два foreach писать
Но в обычных двумерных массивах можно заменить два for на 1 foreach:
Код
3 10 6 0 6 0 Для продолжения нажмите любую кл авишу . . .
1
|
202 / 171 / 67
Регистрация: 04.10.2014
Сообщений: 839
|
||||||
11.10.2014, 15:39 | 4 | |||||
0
|
5 / 5 / 4
Регистрация: 11.10.2014
Сообщений: 57
|
|
11.10.2014, 16:48 [ТС] | 5 |
Значит ответ "НЕТ".
Тогда почему вопрос задан именно так?
0
|
202 / 171 / 67
Регистрация: 04.10.2014
Сообщений: 839
|
||||||
11.10.2014, 16:54 | 6 | |||||
CSharp_user, слыхал о вопросах с подвохом? так вот это он и есть)
Добавлено через 4 минуты CSharp_user, можно обдурить препода) кароче
тут ведь один foreach, а про while ни слова ![]()
2
|
5 / 5 / 4
Регистрация: 11.10.2014
Сообщений: 57
|
||||||
11.10.2014, 17:07 [ТС] | 7 | |||||
Да это интернет-курсы. Был бы препод, спросил бы у него.
Ну ладно. Если это действительно вопрос с подвохом, то хрен с ним. Хотя раньше подобных подвохов не было. Можно было ответить на поставленный вопрос. Добавлено через 9 минут В общем единственный вариант, который удовлетворяет поставленному вопросу - это использование SelectMany:
0
|
11.10.2014, 17:16 | 8 | |||||
![]() Решение
CSharp_user,
Не единственный, можно еще так выводить, вывод точно такой же как и с двумя for
2
|
202 / 171 / 67
Регистрация: 04.10.2014
Сообщений: 839
|
|
11.10.2014, 17:17 | 9 |
XRoy, и вправду работает о_О вот ведь мозг у человека
![]()
0
|
5 / 5 / 4
Регистрация: 11.10.2014
Сообщений: 57
|
|
11.10.2014, 17:43 [ТС] | 10 |
Да, этот способ более изящный. Хотя я не понимаю, как я должен был "подумать", если в уроках ранее не было изучения String.Join()...
0
|
550 / 318 / 138
Регистрация: 08.02.2013
Сообщений: 609
|
||||||
11.10.2014, 22:18 | 12 | |||||
можно еще как-то так, с object[] не получилось
2
|
5 / 5 / 4
Регистрация: 11.10.2014
Сообщений: 57
|
|||||||||||
13.10.2014, 11:09 [ТС] | 13 | ||||||||||
Интересный подход с рекурсией, только я вообще не понял, как работают этот метод.
А если нет? Если он ступенчатый массив, как было при первом вызове? Мы его просто выводим на экран
0
|
550 / 318 / 138
Регистрация: 08.02.2013
Сообщений: 609
|
||||||
13.10.2014, 11:29 | 14 | |||||
CSharp_user, можно так:
Добавлено через 1 минуту пройдитесь отладчиком и посмотрите что в x лежит
0
|
5 / 5 / 4
Регистрация: 11.10.2014
Сообщений: 57
|
|
16.10.2014, 14:19 [ТС] | 15 |
Ну да, только сейчас заметил, что в метод Print передается не int[][], а Array... Тогда понятно, как он перебирает каждый элемент. Спасибо.
0
|
![]() 16746 / 12497 / 3285
Регистрация: 17.09.2011
Сообщений: 20,730
|
|||||||||||
16.10.2014, 15:07 | 16 | ||||||||||
Если не прятаться за линком и рекурсией, которые по сути своей являются вложенными циклами, то можно запилить итератор:
0
|
16.10.2014, 15:07 | |
Помогаю со студенческими работами здесь
16
Слияние двух циклов в один Вывод двух разных массивов API в один foreach Нужно переделать из двух циклов for в один цикл for Ступенчатые массивы C# Ступенчатые массивы Ступенчатые массивы Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |