Здравствуйте, Berill, Вы писали:
Советы еще принимаются?
Вместо тормознутого DataTable.Select() мне нравится такой способ выборки нужных строк:
var allRows = table.Rows.Cast<DataRow>();
var filteredRows = allRows.Where(r => r["TYPE_CODE"] == addingRowInfo.TypeCode).Where(r => r["DETAIL_ID"] == addingRowInfo.DetailID).ToList();
Если избавиться от замыканий, то работает вполне себе шустро.
Пополнять же таблицу новыми строками можно методом Merge(). Он умеет отслеживать дубликаты по первичному ключу.
PS. А еще есть чудесный метод DataTable.Rows.Find(). Он работает только с первичным ключом, но очень быстро. В нашем случае было настолько быстро, что было выгоднее переназначить первичный ключ на другую колонку, чем использовать DataTable.Select().
Извините, если посоветовал банальность.