C# 排序方法和将结果写入文本文件

C# 排序方法和将结果写入文本文件,c#,winforms,C#,Winforms,我正在使用排序方法和随机方法按钮1创建参数随机化数字、大小和工作的最大数量限制。然后根据所选择的线性方法,按钮2对这些数字进行排序,然后使用秒表来计时所花的时间。我目前正在执行以下操作:排序方法,大小,排序时间和文本文件中的操作数。所以我已经完成了第一部分,当程序加载时,我已经提示用户创建一个文件,用于存储结果 我可以用什么方法将结果附加到文本文件中并平均结果?我还需要添加一个按钮,在用户完成排序后关闭写入功能吗 所需格式的示例:排序方法,大小,排序时间和操作数 Linear 10000 .9

我正在使用排序方法和随机方法<代码>按钮1创建参数随机化数字、大小和工作的最大数量限制。然后根据所选择的线性方法,
按钮2
对这些数字进行排序,然后使用秒表来计时所花的时间。我目前正在执行以下操作:
排序方法
大小
排序时间
文本文件中的操作数
。所以我已经完成了第一部分,当程序加载时,我已经提示用户创建一个文件,用于存储结果

我可以用什么方法将结果附加到文本文件中并平均结果?我还需要添加一个按钮,在用户完成排序后关闭写入功能吗

所需格式的示例:
排序方法
大小
排序时间
操作数

Linear 10000 .9 100,000,000
Linear 10000 .8 110,000,000
Linear 10000 .75 150,000,000
Linear 10000 .50 70,000,000
Linear 10000 .7375  107,500,000 ---- AVG
代码

namespace sortMachine
{
    public partial class Form1 : Form
    {

        public Form1()
        {
            InitializeComponent();

        }

        private void Save()
        {
            var saveReport = new SaveFileDialog();
            saveReport.Filter = "Text Files | *.txt";
            var result = saveReport.ShowDialog();

            if (result == DialogResult.Cancel || string.IsNullOrWhiteSpace(saveReport.FileName))
                return;

            using (var writer = new StreamWriter(saveReport.FileName))
            {
                writer.Write(textBox1.Text);
                writer.Close();
            }
        }

        private List<string> messages = new List<string>() { "Linear", "Bubble", "Index", "Other" };
        private int clickCount = 0;

        Stopwatch sw = new Stopwatch();

        private void button1_Click(object sender, EventArgs e)
        {
            try
            {

            }
            else if (textBox7.Text == "Bubble")
            {
            }
            else if (textBox7.Text == "Index")
            {
            }
            else if (textBox7.Text == "Other")
            {
            }
            else if (textBox7.Text == "")
            {
                MessageBox.Show("Please input a sorting method");
            }
        }

    private void Form1_Load(object sender, EventArgs e)
    {
        Save();
    }

    private void button3_Click(object sender, EventArgs e)
    {
        textBox7.Text = messages[clickCount];
        clickCount++;
        if (clickCount == messages.Count)
            clickCount = 0;
    }
}
名称空间排序机
{
公共部分类Form1:Form
{
公共表格1()
{
初始化组件();
}
私有void Save()
{
var saveReport=new SaveFileDialog();
saveReport.Filter=“Text Files |*.txt”;
var result=saveReport.ShowDialog();
if(result==DialogResult.Cancel | | string.IsNullOrWhiteSpace(saveReport.FileName))
返回;
使用(var writer=newstreamwriter(saveReport.FileName))
{
writer.Write(textBox1.Text);
writer.Close();
}
}
私有列表消息=新列表(){“线性”、“气泡”、“索引”、“其他”};
私有int clickCount=0;
秒表sw=新秒表();
私有无效按钮1\u单击(对象发送者,事件参数e)
{
尝试
{
}
else if(textBox7.Text==“气泡”)
{
}
else if(textBox7.Text==“索引”)
{
}
else if(textBox7.Text==“其他”)
{
}
else if(textBox7.Text==“”)
{
MessageBox.Show(“请输入排序方法”);
}
}
私有void Form1\u加载(对象发送方、事件参数e)
{
Save();
}
私有无效按钮3\u单击(对象发送者,事件参数e)
{
textBox7.Text=消息[点击计数];
点击计数++;
如果(clickCount==messages.Count)
点击计数=0;
}
}

}

我没有看完所有的代码,但是你的问题有两个三个部分:

如何对结果进行排序/平均?一旦您有了结果的
列表,您就可以调用,依此类推。它们是
System.Linq
命名空间的一部分。(有用函数的完整列表。)

如何将其输出到文本文件?查看
file.IO
名称空间

如何获取结果数据?您最好创建一个新类:

class SortData
{
   public string SortMethod;
   public int Size;
   public TimeSpan TimeToSort;
   public int NumberOfOperations;
}
创建一个
列表
并将所有结果放入其中,每个结果都作为
新排序数据()
。然后你可以按照以下思路做一些事情:

foreach (var data in myList)
{
   Console.WriteLine(SortMethod + "\t" + Size + "\t" + TimeToSort + "\t" + NumberOfOperations);
}

您需要输出到文件而不是控制台,但想法是一样的。

我没有看完所有代码,但您的问题有两个三个部分:

如何对结果进行排序/平均?一旦您有了结果的
列表,您就可以调用,依此类推。它们是
System.Linq
命名空间的一部分。(有用函数的完整列表。)

如何将其输出到文本文件?查看
file.IO
名称空间

如何获取结果数据?您最好创建一个新类:

class SortData
{
   public string SortMethod;
   public int Size;
   public TimeSpan TimeToSort;
   public int NumberOfOperations;
}
创建一个
列表
并将所有结果放入其中,每个结果都作为
新排序数据()
。然后你可以按照以下思路做一些事情:

foreach (var data in myList)
{
   Console.WriteLine(SortMethod + "\t" + Size + "\t" + TimeToSort + "\t" + NumberOfOperations);
}

您需要输出到文件而不是控制台,但想法是一样的。

为什么不重命名控件?例如,
textBox7
可以是
keyTextBox
。为什么不重命名控件?例如,
textBox7
可以是
keyTextBox
+1谢谢,非常清楚。你能告诉我如何在列表中列出我的结果吗(
排序方法
大小
排序时间
操作数
)?@charlechodex23-我添加了一个建议,但这是我能为你做的。你应该可以从那里拿走。谢谢你,非常清楚。你能告诉我如何在列表中列出我的结果吗(
排序方法
大小
排序时间
操作数
)?@charlechodex23-我添加了一个建议,但这是我能为你做的。你应该可以从那里得到它。