2009-02-10 7 views
0

J'utilise C# 2.0, et je ne peux que penser que ce n'est pas la façon la plus efficace de rechercher une collection (dans ce cas, un DataTable) pour une valeur:refactorisation mon DataTable code de recherche

bool found = false; 
foreach (DataRow row in data.Rows) 
{ 
    if (id == row["rowID"]) 
    { 
     found = true; 
     break; 
    } 
} 
if (!found) 
{ 
    //Do stuff here 
} 

Quelqu'un peut-il penser à une façon «plus propre» de faire cela?

Répondre

1

Ceci est une recherche linéaire et est la plus lente recherche réelle il y a.

Une alternative, si vous voulez continuer à utiliser un DataTable, est de définir une clé primaire et utiliser la méthode Find():

myTable.PrimaryKey = new DataColumn[] { new DataColumn("rowID") }; 
DataRow row = myTable.Find(id);