C# 如何将包含searchresult的var转换为Lower?

C# 如何将包含searchresult的var转换为Lower?,c#,search,C#,Search,我做了一个学校作业,我们需要能够在程序控制台应用程序中搜索 我创建了一个对象Sodacrate,它包含一个索引长度为24的对象数组sodabottles。 sodabottles有名称、价格和类型变量 根据我们的老师的说法,我们不能使用列表,可能是因为他想让我们找到其他方法来解决这个问题,这就是数组包含对象的原因 当我搜索时,我可以搜索sodabottle的确切名称,也可以搜索第一个字母。例如,如果我有一瓶可口可乐,而且我正在搜索可口可乐,那么我就找不到匹配的。如果我搜索c、c或可口可乐,甚至可

我做了一个学校作业,我们需要能够在程序控制台应用程序中搜索

我创建了一个对象Sodacrate,它包含一个索引长度为24的对象数组sodabottles。 sodabottles有名称、价格和类型变量 根据我们的老师的说法,我们不能使用列表,可能是因为他想让我们找到其他方法来解决这个问题,这就是数组包含对象的原因

当我搜索时,我可以搜索sodabottle的确切名称,也可以搜索第一个字母。例如,如果我有一瓶可口可乐,而且我正在搜索可口可乐,那么我就找不到匹配的。如果我搜索c、c或可口可乐,甚至可口可乐,我会找到一个匹配项

如何使搜索结果转换为更低?我尝试过这个,也搜索过这个问题,但没有找到任何明确的解决方案

它给了我一个编译错误

错误CS0029无法将类型“string”隐式转换为“System.Collections.Generic.IEnumerable”thesodacrate C:\Users\Benny\source\repos\thesodacrate\thesodacrate.cs”

如果这看起来很简单的话,我很抱歉,但我几乎要为此而秃顶了。我还需要说,这对我来说是一个全新的领域,我主要是通过反复试验来解决这个问题

我已经编辑了代码,所以它看起来是最新的。entries=第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();

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

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


.字符串是不可变的。这意味着keyword.ToLower不会更改keyword,而是返回一个包含ToLower结果的新字符串。如果你想让关键字用小写,你需要写keyword=keyword.ToLowerSorry。我认为我不能使用Equals,因为我需要能够键入单词的片段。从我的理解来看,等式将两个字符串相互比较并返回true或false?如果我在搜索字段中输入coca,并且我希望searchmethod返回包含coca-Cola名称的所有索引,那么Equals将返回false?感谢Steve澄清这一点。我现在在我的代码中已经改变了这一点,但是如果我在searchresult上做同样的操作,它会给我一个编译错误。严重性代码说明项目文件行抑制状态错误CS0029无法将类型“string”隐式转换为“System.Collections.Generic.IEnumerable”thesodacrate C:\Users\Benny\source\repos\thesodacrate\thesodacrate.cs 243,这不是在C中比较字符串的方式。这里应该是entry.SodaBottleName.IndexOfkeyword,StringComparison.CurrentCultureIgnoreCase>=0,以避免调用ToLower时发生不必要的复制操作和内存分配。
entry.SodaBottleName.ToLower().Contains(keyword)