c#中datatable如何去除重复数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c#中datatable如何去除重复数据相关的知识,希望对你有一定的参考价值。

参考技术A 两种方法1数据库直接去除重复selectdistinct*from表名去除了重复行distinct2对DataTable直接进行操作DataTabledt=db.GetDt("select*from表名");//获得datatableDataViewdv=newDataView(dt);//虚拟视图吧,我这么认为Dat

如何在 C# 中去除 html 标签 [重复]

【中文标题】如何在 C# 中去除 html 标签 [重复]【英文标题】:How can I strip html tags in C# [duplicate] 【发布时间】:2011-01-21 01:11:51 【问题描述】:

可能重复:How to clean HTML tags using C#

在 C# 中去除 HTML 标记的最佳方法是什么?

【问题讨论】:

您知道要删除哪些标签吗?还是全部?即使将来 html 标签发生变化,您还希望代码工作吗?输入是否总是有效的 XHTML? 复制:***.com/questions/787932/… ***.com/questions/785715/asp-net-strip-html-tags 和 ***.com/questions/1038431/… 【参考方案1】:

为保证没有 HTML 标记通过,请使用:HttpServerUtility.HtmlEncode(string);

如果你想让一些通过,你可以使用这个"Whitelist" approach。

更新:在该代码中发现了一些漏洞;作为Developer from Fog Creek tells us。

(第二个链接包括代码)。

【讨论】:

HTMLEncode("图片标签:")) %> 输出:图片标签:<img&gt 和 Strip it 不一样。 这一切都取决于他想要的结果。如果他想确保没有任何 HTML 标记被执行(从而使自己对 XSS 开放),那么第一种方法是“最好的”方法。如果他只想让明文通过,第二种方式的变体是“最好的”。 他可能想删除标签以在 rss-feed 或其他内容中将其显示为明文。在 PHP 中,您有一个名为 php.net/strip_tags 的内置函数,它的哪个声音是他想要的。但是白名单解决了这个问题,你也可以使用那个 HTML Pack 或者它被称为的任何东西.. 实际上,这种方法比上面建议的正则表达式更安全。这种方法的唯一缺点是用户可能不想看到编码的 HTML。 答案中的链接是个坏主意,因为它们有时会中断!【参考方案2】:
  public static string StripHTML(string htmlString)
  

     string pattern = @"<(.|\n)*?>";

     return Regex.Replace(htmlString, pattern, string.Empty);
  

【讨论】:

很高兴为您效劳,妈妈 Ick,这个问题在 SO 中重复了很多次,同样的错误答案也重复了很多次。正如我在另一篇相同的帖子中已经说过的:“你不应该使用正则表达式来解析像 HTML 这样的上下文无关语法。如果 HTML 是由某个外部实体提供的,那么它可以很容易地被操纵以逃避你的正则表达式。” 我们现在正在使用 htmlagilitypack 这取决于您想要实现的目标。当不需要质量时,HAP 可能会非常缓慢地有效剥离几百万个短字符串。 通过 css 类名字符串删除标签 cssClassName = "myCSSClass";字符串模式 = String.Format("]+class=([""'])[^>]*0[^>]*\1[^>]*>(.|\n )*?", cssClassName); Regex.Replace(htmlString, pattern, string.Empty);【参考方案3】:

获取您的 HTML 字符串或文档并使用 HTML Agility Pack 对其进行解析。这将为您提供一个与 XmlDocument 非常相似的 HTMLDocument 对象。

然后您可以使用它的方法,例如SelectNodes 来访问您感兴趣的文档部分。

如果您选择使用其他方法,请注意使用正则表达式解析 HTML(一种非正则语言)被广泛认为是 a bad idea。

无论采用哪种方法,如果您要保留一些标记,请使用白名单方法。这意味着删除所有没有明确需要的内容。

【讨论】:

HTML 敏捷包救了我一天。 +1 如果它根本不是一个格式良好的文档怎么办?例如,只有一堆带有一个标签的文本,Agility Pack 会为您解析吗? @EgorPavlikhin 是的,它将修复无效标记并制作有效的 html 文档。 +1 表示您不应该使用正则表达式解析 CFG。如果可以的话,我会为你 +100。

以上是关于c#中datatable如何去除重复数据的主要内容,如果未能解决你的问题,请参考以下文章

C# 处理DataTable 重复数据

DataTable如何去除重复的行

去除DataTable中的重复数据

去除DataTable重复数据的三种方法

DataTable中怎样将重复的数据合并

怎么去除datatable 中一列的重复值【急】