0

我有一个 DataTable,其中有一列名为ContainerTitle. 我想获取 DataTable 中ContainerTitle具有特定值的行数。例如,假设 DataTable 有 16 行 whereContainerTitle = "Widget1"和 10 行 where ContainerTitle = "Widget2"。我想查询以获取其中的行数ContainerTitle = "Widget1"。稍后,在处理完这些行后,我想获得行数 where ContainerTitle = "Widget2"。我无法弄清楚如何获得计数。

到目前为止,这就是我想出的代码在数据行中递增的地方:

for(int i=0;i<dt.Rows.Count;i++)
{
    DataRow dr = dt.Rows[i];
    szContainerName = dr["ContainerTitle"].ToString();

    // here is where I am attempting to get the count
    var tst = dt.AsEnumerable().Where(p => p.Field<string>("ContainerTitle") == szContainerName );

    .
    .
    .
    if (szContainerName != szPrevContainerName)
    {
        szPrevContainerName= szContainerName ;
    }

}
4

1 回答 1

4

Count将采用谓词,您可以像这样使用它:

var count = dt
           .AsEnumerable()
           .Count(p => p.Field<string>("ContainerTitle") == szContainerName );

您还可以添加Count到 where 子句中,例如:

var count = dt
           .AsEnumerable()
           .Where(p => p.Field<string>("ContainerTitle") == szContainerName );
           .Count();
于 2013-11-06T19:06:30.800 回答