如何避免与 c 中列表数组元素中的字符串匹配#

How to avoid matching the string from the list array element in c#

提问人:krishna mohan 提问时间:10/30/2023 最后编辑:krishna mohan 更新时间:10/30/2023 访问量:53

问:

如何避免匹配 c#.its 中列表数组元素中的字符串失败,因为紧急:否

示例数据

Urgent: 否 //不应匹配 Urgent 是 //应匹配 //abc
Urgent xyz //应匹配

法典

 private static readonly HashSet<string> urgentKeywords = new(StringComparer.OrdinalIgnoreCase)
        {
           "Urgent","FAST"
        };
private static readonly List<string> nonUrgentKeywords = new List<string>()
    {
      "Urgent: No"
    };

var extractedUrgentText = data
          .Where(item => "urgent".Equals(item.Name, StringComparison.OrdinalIgnoreCase) && !string.IsNullOrEmpty(item.Value))
          .Where(item => Regex
             .Matches(item.Value, @"\p{L}+")
             .Cast<Match>()
             .Any(match => urgentKeywords.Contains(match.Value)))
          .Where(item => item.Value != nonUrgentKeywords ) //not working this where clause
          .ToArray().Count();
C# 正则表达式 列表

评论

0赞 VLAZ 10/30/2023
只?或者您仍然应该为其他内容处理第一个条目吗?.Skip(1)
1赞 MakePeaceGreatAgain 10/30/2023
从你的 sample-data 中,没有一个条目应该匹配,因为 none 等于(你的第一个 -statement'filters)"urgent"Where
1赞 Joel Coehoorn 10/30/2023
摆脱 .你不需要它,它会使代码运行得更慢,并使用更多的RAM。ToArray()
0赞 MakePeaceGreatAgain 10/30/2023
@JoelCoehoorn哎呀,不是真的。 无论如何都需要迭代集合,但是它针对数组进行了优化,避免了对其进行重复迭代。Count
0赞 krishna mohan 10/30/2023
@MakePeaceGreatAgain我还有一个数组来匹配单词,我已经更新了我的代码,请检查

答: 暂无答案