【发布时间】:2015-12-18 05:30:25
【问题描述】:
我正在创建一个词云,因此我使用正则表达式在 Linq 中拆分我的句子,并对单词进行分组并计算它们的数量。但是,我不希望某些黑名单词出现在我的云中,所以我将这些词放在数据表 (dtBlackList) 中并使用 Linq 进行检查,如下面的代码所示
var result = (Regex.Split(StringsForWordCloud, @"\W+")
.GroupBy(s => s, StringComparer.InvariantCultureIgnoreCase)
.Where(q => q.Key.Trim() != "")
.Where(q => (dtBlackList.Select("blacklistword = '" + q.Key.Trim() + "'").Count() == 0))
.OrderByDescending(g => g.Count())
.Select(p => new { Word = p.Key, Count = p.Count() })
).Take(200);
这个查询会严重影响我的表现吗?这是检查数据表的正确方法吗?
【问题讨论】:
-
这不是您可以询问这段代码是好是坏的正确区域。最好在此处添加您的帖子Code Review Stack Exchange。
-
什么是
StringsForWordCloud?您可以检查 SQL 分析器以查看您的代码运行时生成的查询类型吗? -
StringsForWordCloud 包含我要为其创建词云的句子。我的后端不是 sql server。
标签: c# asp.net regex linq datatable