首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >计数C#中以特殊名称开头的所有列

计数C#中以特殊名称开头的所有列
EN

Stack Overflow用户
提问于 2016-07-27 09:35:46
回答 3查看 354关注 0票数 0

我有一个DataTable,所有的列如下:

B0_1 A1_1 B0_2 A1_2 B0_3 A1_3 B0_4 A1_4

如何只计算以A1_开头的列

我有过这样的变化多端的包含A1_x

nameCol + n.ToString() + "_" +

注意:在本例中,您可以看到A1_1 -> A1_4,但4是随机数,大约从1 -> 9开始。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-07-27 09:38:36

我建议使用Linq:

代码语言:javascript
运行
复制
  DataTable table = ...

  int result = table.Columns
    .OfType<DataColumn>()
    .Count(column => column.ColumnName.StartsWith("A1_")); 
票数 4
EN

Stack Overflow用户

发布于 2016-07-27 09:43:32

Regex是匹配后缀限制(A1_x1 < x < 9)的一个选项:

代码语言:javascript
运行
复制
DataTable dt = new DataTable();
dt.Columns.Add("A1_a"); // out
dt.Columns.Add("A1_6"); // in
dt.Columns.Add("A1_5"); // in
dt.Columns.Add("A1_7"); // in
dt.Columns.Add("A1_0"); // out
dt.Columns.Add("A1_1"); // out
dt.Columns.Add("A1_9"); // out

// count result is: 3

var count = (from col in dt.Columns.OfType<DataColumn>()
             where Regex.IsMatch(col.ColumnName, "A1_[2-8]")
             select col).Count();

您需要添加using System.Text.RegularExpressions;来使用Regex类型。

票数 0
EN

Stack Overflow用户

发布于 2016-07-27 09:44:55

使用LINQ

代码语言:javascript
运行
复制
int count = table.Columns.Cast<DataColumn>()
                  .Count(c => c.ColumnName.StartsWith("A1_"));

使用前景

代码语言:javascript
运行
复制
int count = 0;
foreach(DataColumn dc in table)
{
    if (dc.ColumnName.StartsWith("A1_"))
        count++;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38609152

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档