如何在DataGridView中查询标题名称?

时间:2013-08-21 15:19:13

标签: c# linq datagridview

我想查询datagridview以获取标题名称。在我获得列表之后,我会循环查看其他内容。这是填充的datagridview的一个示例。

feature | serverName1 | serverName2 | serverName3
database| no          | yes         | no
apps    | yes         | no          | yes
services| yes         | yes         | yes

所以在这个例子中,如果我在寻找具有数据库的服务器,它将返回" serverName2"。或者,如果它有应用程序,它将返回" serverName1,serverName3"等等。想法?

1 个答案:

答案 0 :(得分:2)

public string[] GetHeaders(string feature){
  var result = dataGridView1.Columns
                            .OfType<DataGridViewColumn>()
                            .Where(c=>dataGridView1.Rows
                                                   .OfType<DataGridViewRow>()
                                                   .Any(r=>r.Cells["feature"].Value.ToString() == feature) &&     
                                                   r.Cells[c.Name].Value.ToString() == "yes"))
                            .Select(c=>c.HeaderText)
                            .ToArray();                  
  return result;
}

或者这个:

 public string[] GetHeaders(string feature){
    var row = dataGridView1.Rows
                           .OfType<DataGridViewRow>()
                           .FirstOrDefault(r=>r.Cells["feature"].Value.Equals(feature));
    if(row == null) return null;
    return row.Cells.OfType<DataGridViewCell>()
                    .Where(c=>c.Value.Equals("yes"))
                    .Select(c=>c.OwningColumn.HeaderText)
                    .ToArray();
 }

我认为后者更好。