C# 获取某列中所有值的IEnumerable

C# 获取某列中所有值的IEnumerable,c#,automated-tests,kendo-grid,ui-automation,atata,C#,Automated Tests,Kendo Grid,Ui Automation,Atata,我目前正在使用Atata框架和剑道网格。我试图实现的是获得一个IEnumerable或一个包含列中所有值的集合。剑道格网的定义如下: public KendoGrid<TransactionGroupsRow, _> TransactionGroupsGrid { get; private set; } public class TransactionGroupsRow : KendoGridRow<_> { [FindByColumnHeade

我目前正在使用Atata框架和剑道网格。我试图实现的是获得一个IEnumerable或一个包含列中所有值的集合。剑道格网的定义如下:

public KendoGrid<TransactionGroupsRow, _> TransactionGroupsGrid { get; private set; }

public class TransactionGroupsRow : KendoGridRow<_>
    {
        [FindByColumnHeader("Group Name")]
        public Link<_> GroupName { get; private set; }
    }
public KendoGrid TransactionGroupsGrid{get;private set;}
公共类事务组row:KendoGridRow
{
[FindByColumnHeader(“组名”)]
公共链接组名{get;private set;}
}
我不仅想要所有链接GroupName的集合,我还特别想要它们的文本组件,即链接在屏幕上的显示

所以在这个例子中,我想要一个包含“002999”和“003999”的IEnumerable


如果我需要提供更多细节,请告诉我。提前谢谢

有两种方法可以做到这一点


  • 使用
    SelectData
    方法。对于带有count的项目列表,它的工作速度相当快。数据源是什么样子的,向剑道网格提供数据?您不能查询/选择数据源本身吗?太棒了,非常感谢!不客气。
    // Just get all items:
    IEnumerable<string> groupNames = page.TransactionGroupsGrid.Rows
        .SelectData(x => x.GroupName.Content.Value).Value;
    
    // Assert items:
    page.TransactionGroupsGrid.Rows
        .SelectData(x => x.GroupName.Content.Value).Should.Contain("002999", "003999");
    
    // Just get all items:
    IEnumerable<string> groupNames = page.TransactionGroupsGrid.Rows
        .SelectContentsByExtraXPath("td[1]", "Group Names").Value;
    
    // Assert items:
    page.TransactionGroupsGrid.Rows
        .SelectContentsByExtraXPath("td[1]", "Group Names").Should.Contain("002999", "003999");