我有以下两个按钮单击方法,它们从三个TextBox创建一个数组,对这些值进行排序,将它们插入到数据库中,然后以相同的顺序选择值。两个按钮之间的唯一区别是,按升序对值进行排序,而另一个按降序排序。
我不习惯使用C#。任何人都可以建议构建我的代码的最佳方法,所以我不是为每个按钮重复它吗?通常我会编写一个函数并让每个按钮传递参数。这是去这里的正确方法吗?
提前致谢。
Button1的
protected void Button1_Click(object sender, EventArgs e)
{
var list = new string[] { TextBox1.Text, TextBox2.Text, TextBox3.Text };
var orderedlist = list.OrderBy(x => (x)).ToArray();
...
SqlCommand cmd = new SqlCommand("Select * from lists order by values asc", conn);
将Button2
protected void Button2_Click(object sender, EventArgs e)
{
var list = new string[] { TextBox1.Text, TextBox2.Text, TextBox3.Text };
var orderedlist = list.OrderByDescending(x => (x)).ToArray();
...
SqlCommand cmd = new SqlCommand("Select * from lists order by values desc", conn);
答案 0 :(得分:5)
您可以将Button
点击事件分配给同一个处理程序,然后使用sender
选择您想要的排序。
protected void Button_Click(object sender, EventArgs e)
{
var list = new string[] { TextBox1.Text, TextBox2.Text, TextBox3.Text };
var orderedlist = (sender as Button).AccessKey == "Button1" // or whatever name it is
? list.OrderByDescending(x => (x)).ToArray()
: list.OrderBy(x => (x)).ToArray();
.............
}
答案 1 :(得分:2)
On选项是创建一个函数,排序:
public list sort(String order)
{
var list = new string[] { TextBox1.Text, TextBox2.Text, TextBox3.Text };
var orderedlist = list.OrderByDescending(x => (x)).ToArray();
...
SqlCommand cmd = new SqlCommand("Select * from lists order by values " + order, conn)
...
return SortedList;
}
调用sort(“asc”)以按升序创建排序列表,并排序(“desc”)以按降序排序。并且没有代码重复:)