【发布时间】:2016-09-20 16:39:52
【问题描述】:
我正在尝试搜索字符串列表。我希望能够返回包含字符串信息的任何找到的结果。例如:
(我已经有一个包含值的列表)列表字符串包含
“狗”、“猫”、“狗屋”、“狗”、“老鼠”
我想要一种检查字符串的方法,例如:
string dog = "dog"
并返回值:
“狗”、“狗屋”、“狗”
这是我目前所拥有的,至少是我需要帮助的部分。
Console.WriteLine("What would you like to search for (Title: Full Title; Author: first, last): ");
search = Console.ReadLine();
var results = bookList.Where(x => x.Contains(search)).ToList();
if (results != null)
{
Console.WriteLine(results);
//i--;
search = String.Empty;
clearvars results;
Console.WriteLine("Press Enter to continue");
Console.ReadLine();
continue;
}
search 是一个空字符串
bookList 是我的List<string>
i 只是一个计数器,对此并不真正需要
如果有任何改变,我将在 for 循环中完成这一切。
【问题讨论】:
-
请发布minimal reproducible example,其中包含您注册的确切书名以及您要搜索的确切字符串。现在我们都看不到,所以我们不得不猜测它为什么不起作用。例如,您是否知道
string.Contains区分大小写,因此,例如,如果您在列表中的书名是“Doghouse”,则搜索“dog”(小写d)将不匹配. -
此时,用户输入书名。如果它区分大小写,对我来说并不重要。此外,您正在搜索的内容也是由用户输入的。对不起...
-
你误解了我的意思。我并不是要您更改程序,我的意思是您要为这个问题创建一个示例,该示例展示了相同的问题,但非常完整,我们可以查看代码。例如,如果您稍后说“哦,顺便说一句,用户输入书名是 Doghouse,然后他搜索 dog”,那么我们回到我上面的评论。由于我们不知道用户做了什么,您能否为我们复制一个具体的案例,以便我们可以帮助您?否则我们只能猜测。
-
哎呀,我马上就明白了,所以,你基本上想要 else 语句吗?或者你想要更多我的代码,还是想要我所有的代码?
-
我希望您使用一些字符串(例如您拥有的示例字符串)预先设置要搜索的内容列表,并使用“dog”填充要搜索的字符串,然后看看会发生什么.到那时您可能会发现问题所在。另请注意,如果您想要大小写 insensitive 搜索,您不能只使用
.Contains。