在数据表中搜索包含html c#的值

时间:2014-04-10 16:47:06

标签: c# html datatable

我正在尝试搜索我加载到数据表中的csv文件。

第二列包含一些带有html的值。我想搜索并仅选择那些包含html的值及其在第1列中的相应值。

我该怎么做呢?我知道正则表达式不是一个好方法。

        var dir = AppDomain.CurrentDomain.BaseDirectory + @"\classes.csv";
        var test = GetDataTableFromCsv(dir, true);
        var totalclasses = test.Rows.Count;


        Console.Write("Number of Classes: " + totalclasses);
        Console.WriteLine();
        test.Columns[0].ColumnName = "Studios";
        test.Columns[1].ColumnName = "Classes";

以下是我读入数据表的csv文件的一部分示例。

3722,JHL Workshop Event 2
3722,Newcomers Workshop
3722,March Newcomer''s Workshop
3722,<FONT COLOR="#965C00"/>Pilates & Yoga
3722,Julian Retreat May 13 - 15, 2011
3722,<FONT COLOR="#965C00"/>Active Hatha Mix
3722,<FONT COLOR="#FF1CAE"/>Breathing & Meditation
3722,<FONT COLOR="#0000FF"/>Functional Movement Hatha Yoga (Blue)
3722,<FONT COLOR="#F00D3E"/>Active Hatha Flow (Red)
3722,<FONT COLOR="#CC2EFA"/>Gentle Restorative Mix (Purple) 
3722,Pre-Class offering for AGW Members:  Guided Meditation & Inspiration
3722,ACTIVE HATHA YOGA MIX
3722,Yoga, Breath and Meditation - "7 Spiritual Laws of Yoga"

我需要计算包含HTML的类的数量,然后有多少个工作室包含包含html的类

1 个答案:

答案 0 :(得分:0)

如果您只是尝试检测html,则不需要解析它,只需对特殊字符使用字符串解析即可。然而,Regex可能更可靠。

var enumerableDT= test.AsEnumerable();
var classesWithHTMLCount = enumerableDT.Count(x => x["Classes"].ToString()
                                                               .Contains("/>"));
var studiosWithHTMLCount = enumerableDT.Where(x => x["Classes"].ToString()
                                                               .Contains("/>"))
                                       .GroupBy(x => x["Studio"])
                                       .Count();