首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在C#中,有没有办法将链表转换成字符串?

在C#中,有没有办法将链表转换成字符串?
EN

Stack Overflow用户
提问于 2021-11-24 09:23:34
回答 1查看 82关注 0票数 0

在C#中,有没有办法将链表转换成字符串?

我有一个句子的链表和另一个单词的链表。我想检查句子链表中的单词链表中的单词,并认为一个好的方法是将单词链表转换为字符串。

还考虑使用嵌套的while循环。

EN

回答 1

Stack Overflow用户

发布于 2021-11-26 15:23:05

认为一个很好的方法是将单词链表转换为字符串。

任何时候,如果您有一个X列表和一个Y列表,并且您想要检查X中的任何元素是否在Y中,那么您可能需要一个散列集(而不是列表)。

哈希集提供了固定值的快速查找。你的算法应该是:

  • 将搜索列表加载到set
  • 枚举搜索列表,反复询问当前项目是否在set

代码语言:javascript
复制
    var hs = listOfWords.ToHashSet();

    foreach(var sentence in listOfSentences){
      foreach(var word in sentence.Split()){
        if(hs.Contains(word))
        {
          ...
        }
      }
    }

或者使用LINQ风格的方法

代码语言:javascript
复制
    var hs = listOfWords.ToHashSet();

    var result = listOfSentences.Where(sentence=> 
       sentence.Split().Any(word => 
           hs.Contains(word)
       )
    );

注意:默认情况下,字符串的c#散列是区分大小写的,并且每个字符都有助于字符串相等。对于"hello","world","foo","bar"的单词列表和句子列表:"Hello world!", "Foo bar." -这些句子不包含单词列表中的任何单词。Hello不等于helloworld!不等于world。仔细处理你的句子,这样你就可以比较不同的句子-例如,去掉标点符号,并使大小写相等

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70093528

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档