在C#中,有没有一种方法可以将链表转换为字符串



在C#中,有没有一种方法可以将链表转换为字符串?

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

还考虑使用嵌套while循环。

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

任何时候你有一个X和Y的列表,并且你想检查X中的任何元素是否在Y中,你需要的可能是一个哈希集(而不是列表(

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

  • 将搜索列表加载到集合中
  • 枚举在中搜索的列表,重复询问当前项目是否在集合中
var hs = listOfWords.ToHashSet();
foreach(var sentence in listOfSentences){
foreach(var word in sentence.Split()){
if(hs.Contains(word))
{
...
}
}
}

或者在LINQ风格的方法中

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。仔细处理你的句子,这样你就可以比较苹果和苹果了——例如去掉标点符号,并使大小写相等,例如

相关内容

  • 没有找到相关文章

最新更新