2017-04-26 94 views
0

我的代碼這個例子中,它定義本地變量:傳遞VAR值到另一個類

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

好,'var'只是一個語法糖,'query'變量的實際類型(你可以看到是否將VS懸停在VS中)類似於'IQueryable '。 –

回答

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(); 
} 

絕對不是最好的方式做你的目標是什麼,但是這回答您的具體問題

+0

完美,正是我想要的。非常感謝。 – Laki