我已经完成了一项学校作业,需要在程序(控制台应用程序)中进行搜索。
我创建了一个对象(Sodacrate),其中包含索引长度为24的对象(苏打瓶)数组。 sodabottle具有名称,价格和类型变量 根据我们的老师的说法,我们不能为此使用LISTS(可能是因为他希望我们找到其他方法来解决此问题),这就是包含对象的数组的原因。
搜索时,我可以搜索sodabottle的确切名称,也可以搜索第一个字母。例如,如果我有一瓶可口可乐(准确的拼写),而我正在寻找可口可乐,那我找不到匹配的东西。如果我搜索c,C或可口可乐,甚至可口可乐,我都会找到匹配项。
如何使搜索结果转换为ToLower?我已经尝试过并搜索了问题,但是没有找到明确的解决方案。
它给了我一个编译错误
错误CS0029无法将类型'string'隐式转换为'System.Collections.Generic.IEnumerable'thesodacrate C:\ Users \ Benny \ source \ repos \ thesodacrate \ thesodacrate \ Sodacrate.cs 244有效
如果这看起来很简单,我很抱歉,但是我对此几乎秃头。我还需要说这对我来说是一个全新的领域,而我主要是通过反复试验来弄清楚这一点。
我已经编辑了代码,因此它是最新的atm外观。 entrys =第7行的条目会产生编译错误。
Console.Write("Type in your search: ");
var keyword = Console.ReadLine();
keyword = keyword.ToLower();
Console.WriteLine(keyword);
var entries = bottles.Where(entry => entry.SodaBottleName !=null && entry.SodaBottleName.Contains(keyword));
entries = entries.ToString().ToLower();
if (entries.Count() == 0)
{
Console.Write("Didn´t find any match");
Console.WriteLine("Press enter to return to mainmenu");
}
else
{
foreach (var entry in entries)
{
Console.WriteLine("{0} - {1} $", entry.SodaBottleName, entry.SodaBottlePrice);
}
Console.WriteLine("You´ve added {0} bottles that match your search: {1}.", entries.Count(), keyword);
Console.WriteLine("Press enter to return to mainmenu");
}
Console.ReadLine();
答案 0 :(得分:0)
您需要使两个字符串都降低。关键字和字符串。
var keyword = Console.ReadLine().ToLower();
和
entry.SodaBottleName.ToLower().Contains(keyword)