在Datatable中搜索包含html c#的值

本文关键字:html 的值 包含 搜索 Datatable | 更新日期: 2023-09-27 17:57:57

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

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

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

        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 的类

在Datatable中搜索包含html c#的值

如果您只是试图检测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();