@Samaif

Как отсортировать элементы строчного массива, чтобы элементы выводились по возрастанию?

Например "a""abc""ab" выводило "a""ab""abc"
  • Вопрос задан
  • 4079 просмотров
Пригласить эксперта
Ответы на вопрос 4
@Espleth
А стандартная сортировка их не хочет сортировать?
Если нет, то сделайте свой IComparer и передайте его стандартной сортировке.
class StringComparer : IComparer<string>
    {
        public int Compare(string str1, string str2)
        {
            for (int i = 0; i < str1.Count; ++i)
            {
                if (str1[i] > str2[i])
                {
                    return 1;
                }
                if (str1[i] < str2[i])
                {
                    return -1;
                }
            }
            return 0;
        }
    }

Как-то так он будет выглядеть. Там еще надо прописать на случай разной длины строк и т.п., но я надеюсь вы справитесь
И да, гугл в помощь
Ответ написан
Комментировать
@Sumor
Ответ написан
Комментировать
using System;

namespace strsort
{
	class Program
	{
		public static void Main(string[] args)
		{
			//данный массив строк
			string[] m = {"a","abc","ab"};
			
			Console.WriteLine("Массив до сортировки:");
			foreach (string s in m)
				Console.WriteLine(s);
			
			Array.Sort(m);
			Console.WriteLine();
			
			Console.WriteLine("Массив после сортировки:");
			foreach (string s in m)
				Console.WriteLine(s);
			
			Console.Write("Press any key to continue . . . ");
			Console.ReadKey(true);
		}
	}
}
Ответ написан
Комментировать
HaJIuBauKa
@HaJIuBauKa
Откройте для себя LINQ:

using System;
using System.Linq;
					
public class Program
{
	public static void Main()
	{
		string[] __sa = {"a", "abc", "ab"};
		Console.WriteLine(String.Join(" ", __sa.OrderBy(x => x.Length).ToArray()));
	}
}


https://dotnetfiddle.net/ORcFLn

И да - обычная сортировка работает.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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