我正在尝试搜索我加载到数据表中的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的类
答案 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();