Prasad Billupati Ответов: 3

Как Отсортировать Строковый Массив По Длине Строк В C#


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Name
{
    class LCS
    {
        int n;
        static void Main()
        {
            LCS obj = new LCS();
            obj.arrays();
            Console.ReadLine();
        }
        public void arrays()
        {
            Console.WriteLine("Enter how many strings you want to enter:-");
            n = Int32.Parse(Console.ReadLine());
            List<string> sampleList = new List<string>();
            Console.WriteLine("Enter  " + n + " strings");
            for (int i = 0; i < n; i++)
            {
                sampleList.Add(Console.ReadLine());
            }     
    }
}

Tomas Takac

Есть несколько способов, что вы пробовали?

3 Ответов

Рейтинг:
24

Thomas Daniels

Для этого вы можете использовать LINQ:

sampleList = sampleList.OrderBy(s => s.Length).ToList();

https://msdn.microsoft.com/en-us/library/vstudio/bb534966%28v=vs.100%29.aspx[^]


Leo Chapiro

n1 (хороший), +5 :)

Thomas Daniels

Спасибо!

Рейтинг:
17

Tomas Takac

Как я уже сказал, Есть несколько способов сделать это. И, конечно же, решение ProgramFOX с LINQ является правильным. Итак, вот альтернатива, использующая Список.Способ сортировки[^]:

sampleList.Sort((x,y) => x.Length - y.Length);

Преимущество заключается в том, что вы не создаете новый экземпляр списка.


BillWoodruff

+5

George Swan

Отличный ответ. Я был так одержим Linq, что не подумал о вашем решении. И, если вдуматься, есть еще кое-что.
sampleList.Sort((x, y) => x.Length.Метод compareto(г.Длина));

Рейтинг:
0

Member 14579196

using System;
using static System.Console;
using static System.Convert;

namespace Program
{
    class arrexp
    {
        static void Main(string[] args)
        {
            int size;
            WriteLine("Enter size");
            size = ToInt32(ReadLine());

      
            string[] str = new string[size];
     
            int[] b = new int[size];
            WriteLine("Enter the words");
            for (int i = 0; i < size; i++)
            {
                str[i] = ReadLine();
            }
            for (int i = 0; i < size; i++)
            {
                for (int k = i + 1; k < size; k++)
                {
                    if(str[i].Length>str[k].Length)
                    {
                        string str1 = " ";
                        str1 = str[i];
                        str[i] = str[k];
                        str[k] = str1;
                    }
                    

                }
            }
            foreach(string x in str)
            {
                WriteLine(x);
            }
        }
    }
}