Vous pouvez utiliser LINQ-to-DataSet
avec Enumerable.Any
:
String author = "John Grisham";
bool contains = tbl.AsEnumerable().Any(row => author == row.Field<String>("Author"));
Une autre approche consiste à utiliser DataTable.Select
:
DataRow[] foundAuthors = tbl.Select("Author = '" + searchAuthor + "'");
if(foundAuthors.Length != 0)
{
// do something...
}
Q: Et si nous ne savons pas les têtes de colonnes et nous voulons trouver si une valeur de la cellule PEPSI
existent dans toutes les colonnes rows'c? Je peux tout boucler à savoir, mais est-il un meilleur moyen? -
Oui, vous pouvez utiliser cette requête:
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