0

私は基本的に、ハード ドライブからテキスト ファイルを読み取り、バブル ソートを使用してテキスト ファイル内の文字列要素を (IComparableインターフェイスを使用して) 並べ替えたいと考えています。これはばかげた質問かもしれませんが、ここで立ち往生しています:以下のコード

using System.IO;

namespace Pratictice
{
    public partial class CfrmPractice : Form
    {
        public CfrmPractice()
        {
            InitializeComponent();
        }

        private static T[] BubbleSort<T>(T[] list) where T : IComparable
        {
            T temp;
            bool isSorted = false;

                while (!isSorted)
                {
                    isSorted = true;
                    for (int i = 0; i < list.Length - 1; i++)
                    {
                        if (list[i].CompareTo(list[i + 1]) > 0)
                        {
                            temp = list[i];
                            list[i] = list[i + 1];
                            list[i + 1] = temp;
                            isSorted = false;

                            return (T) Convert.ChangeType(isSorted[bool],typeof(T));
                        }
                    }
                }
        }


        private void btnSort_Click(object sender, EventArgs e)
        {

        }

        public void LoadDataSource()
        {
            ofdLoadData.InitialDirectory = Application.StartupPath;
            //ofdLoadData.FileName = "Text FIles (.txt)|*.txt|All Files (*.*)|*.*|";

            if (ofdLoadData.ShowDialog() == DialogResult.OK)
            {
                try
                {
                    using (StreamReader f = new StreamReader(ofdLoadData.FileName))
                    {
                        string sLine;
                        string[] Fields;

                        while (!f.EndOfStream)
                        {
                            sLine = f.ReadLine();
                            Fields = sLine.Split(' ');
                            lstLoadData.Items.Add(Fields[0]);
                        }
                    }
                }
                catch (Exception error)
                {
                    MessageBox.Show(error.Message, "Practice");
                }

            }
        }

        private void LoadData_Click(object sender, EventArgs e)
        {

            LoadDataSource();
        }

        private void lstLoadData_SelectedIndexChanged(object sender, EventArgs e)
        {

        }

        class Compare : IComparable
        {
            public string FileName;

            public int CompareTo(object obj)
            {
                if (this.FileName == ((Compare)obj).FileName)
                    return 0;
                else if (this.FileName != ((Compare)obj).FileName)
                    return 1;
                else
                    return -1;
            }
        }

    }
} 
4

1 に答える 1