Puede utilizar LINQ-to-DataSet
con Enumerable.Any
:
String author = "John Grisham";
bool contains = tbl.AsEnumerable().Any(row => author == row.Field<String>("Author"));
Otro enfoque es utilizar DataTable.Select
:
DataRow[] foundAuthors = tbl.Select("Author = '" + searchAuthor + "'");
if(foundAuthors.Length != 0)
{
// do something...
}
Q: ¿y si no sabemos las cabeceras de las columnas y queremos encontrar si cualquier valor de la celda PEPSI
existe en ninguna columna rows'c? Puedo recorrerlo todo al , pero ¿hay una forma mejor? -
sí, se puede utilizar esta consulta:
DataColumn[] columns = tbl.Columns.Cast<DataColumn>().ToArray();
bool anyFieldContainsPepsi = tbl.AsEnumerable()
.Any(row => columns.Any(col => row[col].ToString() == "PEPSI"));
LINQ? 'table.Any (t => t.Author == author);' – Davio