在C#中,有没有办法将链表转换成字符串?
我有一个句子的链表和另一个单词的链表。我想检查句子链表中的单词链表中的单词,并认为一个好的方法是将单词链表转换为字符串。
还考虑使用嵌套的while循环。
发布于 2021-11-26 15:23:05
认为一个很好的方法是将单词链表转换为字符串。
任何时候,如果您有一个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不等于hello,world!不等于world。仔细处理你的句子,这样你就可以比较不同的句子-例如,去掉标点符号,并使大小写相等
https://stackoverflow.com/questions/70093528
复制相似问题