Большинство iOS emojis используют коды над базовой многоязычной плоскостью в таблице Unicode. Например,
Для этого можно использовать 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
, чтобы упростить тип -безопасный доступ к полю (а также предоставление дополнительных преимуществ преобразования DBNull
в нулевые аналоги в .NET):
dataSet.Tables[0].AsEnumerable().Single(
r => r.Field<string>("Col1") == "MyValue");
Для этого можно использовать метод Select
таблицы данных или свойство фильтра DefaultDataView
в таблице.
Для метода Select
:
var rows = dataSet.Tables[0].Select("Col1 = 'MyValue'");
Для DefaultView
Фильтр:
dataSet.Tables[0].DefaultView.Fitler = "Col1 = 'MyValue'";
foreach (var drv in dataSet.Tables[0].DefaultView)
{
// Do your processing
}
Почему использовать лямбда, а не select ?
DataRow[] foundRow = ( dataSet.Tables[0].Rows.Select("Col1 = 'MyValue'");
Написанный вами код проверяет, что есть только одна строка, которая удовлетворяет вашему условию поиска.
Если вам действительно нужны строки, отбросьте Assert
и Count