如何转换包含SearchToLower的var?

时间:2019-03-31 22:38:44

标签: c# search

我已经完成了一项学校作业,需要在程序(控制台应用程序)中进行搜索。

我创建了一个对象(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();

1 个答案:

答案 0 :(得分:0)

您需要使两个字符串都降低。关键字和字符串。

var keyword = Console.ReadLine().ToLower();

entry.SodaBottleName.ToLower().Contains(keyword)