Ответ 1
Вы можете использовать LINQ to DataSets, чтобы сделать это:
Assert.IsTrue(dataSet.Tables[0].AsEnumerable().Where(
r => ((string) r["Col1"]) == "MyValue").Count() == 1);
Примечание. Вы также можете сделать это без вызова Assert:
dataSet.Tables[0].AsEnumerable().Where(
r => ((string) r["Col1"]) == "MyValue").Single();
Если количество строк не равно одному (следовательно, вызов "Single" ), тогда будет выбрано исключение, и это необработанное исключение должно завершиться неудачно. Лично мне нравится последний, поскольку он имеет более четкое смысловое значение.
Вышеупомянутое может быть дополнительно уменьшено до:
dataSet.Tables[0].AsEnumerable().Single(
r => ((string) r["Col1"]) == "MyValue");
Кроме того, вы можете воспользоваться Field
методом на DataRowExtensions
class, чтобы упростить доступ к полю в виде типа (а также предоставить дополнительную выгоду от преобразования DBNull
для нуль-копий в .NET):
dataSet.Tables[0].AsEnumerable().Single(
r => r.Field<string>("Col1") == "MyValue");