在 LINQ 中使用参数(字符串)

Using A Parametr (string) in LINQ

我正在尝试使用列表框进行 Select 搜索, 但我不能在 LINQ 中使用字符串 si,我不知道如何使用它, 我做了这个代码,但不知道如何使用 si。

        var db = new DataClasses1DataContext();
        int selectedIndex = listBox1.SelectedIndex;
        string si = "";
        if (selectedIndex == 0) si = "id" ;
        if (selectedIndex == 1) si = "name";
        if (selectedIndex == 2) si = "sex";
        if (selectedIndex == 3) si = "address";
        if (selectedIndex == 4) si = "phone";
        if (selectedIndex == 5) si = "web";
        var qsearch = db.users.Where(c => c.[i want use si in this place].Contains(textBox7.Text));
        dataGridView1.DataSource = qsearch;

为什么不直接在每个 if 语句中设置查询

switch (selectedIndex)
{
   case 0:
     dataGridView1.DataSource = db.users.Where(u => u.Id.Contains(...));
     break;
   ....
 }