私は基本的に、ハード ドライブからテキスト ファイルを読み取り、バブル ソートを使用してテキスト ファイル内の文字列要素を (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;
}
}
}
}