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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.05.2012, 18:34   #1
VladOsq
Новичок
Джуниор
 
Регистрация: 23.05.2012
Сообщений: 1
По умолчанию Как посчитать количество вхождений элемента в массив/список

Точнее говоря есть исходный код, но нужно реализовать его с помощью рекурсии. Назначение программы: "посчитать количество вхождений элемента в массив/список". Заранее спасибо за любую помощь.

Код:

Код:
using System;
using System.Collections.Generic;
	
namespace ValArray {
	class Program {
		public class ValArray<T>
			where T: struct
		{
			List<T> array;

				public ValArray(List<T> array) {
					this.array = array;
				}

				public uint count(T elem) {
					uint counter = 0;
					foreach (T val in array) {
						if (val.Equals(elem)) {
							++counter;
						}
					}
				}
			}

			static void Main(string[] args) {
				List<int> list = new List<int> { 1, 2, 3, 4, 5, 6, 7 };
				ValArray<int> va = new ValArray<int>(list);
				uint с = va.count(1);
			}
		}
}
VladOsq вне форума Ответить с цитированием
Старый 24.05.2012, 12:06   #2
Скарам
Дружите с Linq ;)
Форумчанин
 
Аватар для Скарам
 
Регистрация: 15.10.2008
Сообщений: 822
По умолчанию

Код:
using System;
using System.Collections.Generic;

namespace ConsoleApplication1
{
    internal class Program
    {
        private static void Main()
        {
            var list = new List< int > { 1, 2, 3, 4, 5, 6, 7 };
            var va = new ValArray< int >( list );
            Console.WriteLine( va.Count( 1 ) );
            Console.ReadLine();
        }

        #region Nested type: ValArray

        private sealed class ValArray< T > where T : struct
        {
            private readonly List< T > array;

            internal ValArray( List< T > array )
            {
                this.array = array;
            }

            public uint Count( T elem )
            {
                return Count( 0, elem );
            }

            private uint Count( int index, T elem )
            {
                return Convert.ToUInt32( array[ index ].Equals( elem ) ) + ( array.Count > ( index + 1 ) ? Count( index + 1, elem ) : 0 );
            }
        }

        #endregion
    }
}
Не давай организму поблажки, каждый день тренируй его в шашки..
Скарам вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Число вхождений элемента E в дерево T AlexSun Помощь студентам 1 27.11.2011 14:44
Подсчёт количества вхождений элемента Farrel SQL, базы данных 1 04.05.2011 11:41
Одномерный массив (посчитать количество, сумму и упорядочить) Си++ Defender42 Помощь студентам 10 02.04.2011 10:42
Посчитать количество нулей, находящихся на главной диагонали (массив) Sin3v_ Паскаль, Turbo Pascal, PascalABC.NET 6 03.10.2010 16:22
Как посчитать количество знаков PARTOS Microsoft Office Excel 11 05.06.2010 22:46