我有这个定义局部变量的代码示例:
private void btnFindName_Click(object sender, EventArgs e)
{
var query = db.Users.AsQueryable();
query = query.Where(x => x.name == txtName);
userBindingSource.DataSource = query.ToList();
}
下一个方法从我的绑定源中对所有用户进行排序:
private void sortToolStripMenuItem_Click(object sender, EventArgs e)
{
userBindingSource.DataSource = db.Users.OrderBy(x => x.name).ToList();
}
我想重写此方法,以便仅将在第一种方法中获得的用户排序为' var query' (不是所有的人)。我的想法是有这样的事情:
userBindingSource.DataSource = query.OrderBy(x => x.name)。ToList();
在这种情况下,如何将查询的值从第一种方法传递给第二种方法?
谢谢。
答案 0 :(得分:1)
不要让它成为本地的:
private IQueryable<User> _query;
private void btnFindName_Click(object sender, EventArgs e)
{
_query = db.Users.AsQueryable();
_query = _query.Where(x => x.name == txtName);
userBindingSource.DataSource = _query.ToList();
}
private void sortToolStripMenuItem_Click(object sender, EventArgs e)
{
userBindingSource.DataSource = _query.OrderBy(x => x.name).ToList();
}
绝对不是做你所针对的最佳方式,但这可以回答你的具体问题