Задать вопрос

"Всего 12 анкет" — замена окончания слова «анкет» в зависимости от цифры. Есть готовые решения?

Может у кого есть готовое решение по данному вопросу?
Думаю, что если писать с нуля, то колесо придумывать буду - не хочется)
  • Вопрос задан
  • 376 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 1
Gorily
@Gorily
Пользуюсь таким решением:
/// <summary>
///     Склонение существительных после числительных.
/// </summary>
/// <param name="iNumber">Число</param>
/// <param name="aEndings">Массив слов или окончаний для чисел (1, 4, 5)</param>
/// <returns>Вовращает вариант окончания или слова для числительного</returns>
public static string GetNumEnding(long iNumber, string[] aEndings)
{
	string sEnding;
	iNumber = iNumber%100;
	if (iNumber >= 11 && iNumber <= 19)
	{
		sEnding = aEndings[2];
	}
	else
	{
		var i = iNumber%10;
		switch (i)
		{
			case (1):
				sEnding = aEndings[0];
				break;
			case (2):
			case (3):
			case (4):
				sEnding = aEndings[1];
				break;
			default:
				sEnding = aEndings[2];
				break;
		}
	}
	return sEnding;
}

Пример:
GetNumEnding(notices.Count, new[] {"объявление", "объявления", "объявлений"})
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@heartdevil
плыву как воздушный шарик
Привет.

Да не парьтесь с этим. Лучше измените на "Всего анкет - 0/1/2/38/10/100". Только время убьете на такую фигню.
Ответ написан
Комментировать
wkololo_4ever
@wkololo_4ever
На работе пользуемся morpher.ru , но как dll`ка он платный. Есть бесплатный апи.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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