当前位置: 首页 > 知识库问答 >
问题:

使用C#Dictionary中的ToUpper和ToLower检查ContainsKey的用户输入

阎慈
2023-03-14

尝试在C#控制台应用程序中使用ToUpToDown验证用户定义的字符串是否在字典中,其中包含字符串和int元素,然后用ConstainsKey打印出元素。例如(简体):

Dictionary<string, int> example = new Dictionary<string, int>();

//int for number of each type of element
int elements = 3;

for (int i = 0; i < elements; i++)
{
     Console.WriteLine("What is the key?");
     string stringElement = Console.ReadLine();
     
     //Validation loop
     while (string.IsNullOrWhileSpace(stringElement))
     {
          Console.WriteLine("error");
          Console.WriteLine("What is the key?");
          stringElement = Console.ReadLine();
     }
     //Ask user for value
     Console.WriteLine("What is the value?");

     string numElementString = Console.ReadLine();

     while (string.IsNullOrWhiteSpace(intElementString) || (!(int.TryParse(numElementString, out numElement))) || numElement <= 0)
     {
          Console.WriteLine("error");
          Console.WriteLine("What is the value?");
          numElementString = Console.ReadLine();
     }
     example.Add(stringElement, numElement);
}

//What does user want to have printed
Console.WriteLine("What elements are you looking for? Please type in the key you need.");

//Catch key user answers
string userAnswer = Console.ReadLine();

//userAnswer validation look for IsNullOrWhiteSpace
while (string.IsNullOrWhiteSpace(userAnswer))
{
     Console.WriteLine("error");
     Console.WriteLine("What elements are you looking for? Please type in the key you need.");
     userAnswer = Console.ReadLine();

到目前为止,我只是在使用ToUpTolower表达式让控制台打印出特定的时遇到了问题


共有1个答案

闾丘玺
2023-03-14

您不需要使用ToUpperToLower来尝试以不区分大小写的方式查找密钥。相反,您可以将比较器传递给字典的构造函数,该构造函数指定在添加或检索项时应忽略大小写:

var dict = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase);

现在,当你搜索一个值时,它会进行不区分大小写的比较,试图找到它:

// Add a value using lower case key
dict.Add("foo", "bar");  

// Search for a value using upper case returns 'true'
if (dict.ContainsKey("FOO")) { } 

尝试用不同的大小写添加一个键会抛出一个ArgumentExc0019,消息是“已经添加了具有相同键的项”

dict.Add("Foo", "bar2")  // Argument exception - key already exists
 类似资料:
  • 我试图创建一个简短的基于文本的冒险游戏使用Java。 我是一个初学的程序员,所以我的方法可能不是最有效的,但我只使用了我从学校课程中学到的东西。 为什么会出现这个问题?我不知道我做错了什么。 谢了!

  • 问题内容: 我试图通过限制用户可以输入的内容来使用户输入不使程序崩溃,例如: 只是一个int 在1到30之间 我编写的代码只能在一定程度上起作用。如果您输入的内容不是整数,它将对其进行检查并要求您再次输入。如果您继续输入除int以外的任何内容,则再次输入。我还有另一个while循环,如果它确实输入一个int,并且它在1-30区域之外,则它将要求用户再次输入。但是,此后,如果用户键入另一个“除int

  • 本文向大家介绍C#中Dictionary类使用实例,包括了C#中Dictionary类使用实例的使用技巧和注意事项,需要的朋友参考一下 在C#中,使用Dictionary类来管理由键值对组成的集合,这类集合称为字典。 字典最大的特点就是能够根据键来快速查找集合中的值。 下面是一个使用字典的小实例,希望通过这个小实例,能让大家对字典操作有一个初步的了解。下面是完整代码。 实例中需要定义两个类: Sc

  • 本文向大家介绍C# ToUpper() 使用方法及实例,包括了C# ToUpper() 使用方法及实例的使用技巧和注意事项,需要的朋友参考一下 C#中的ToUpper()方法用于返回转换为大写字母的此字符串的副本。 语法 示例 输出结果 示例 输出结果

  • 我正试图编写一个程序,使用扫描仪从用户那里获取输入,但有时我需要随机化用户输入,并检查其是否正确。 输出需要看起来像这样 输入要测试的单词:Name anem与:Name-False相同吗 输入要测试的单词:罗斯柴尔德 罗斯柴尔德和:罗斯柴尔德是真的吗 现在我对Java很陌生,不知道如何把它们都放在一起。我试图使用扫描仪、数组列表和随机util,但我很难把代码弄清楚。 任何关于如何编写这个程序的清

  • 本文向大家介绍C#中Dictionary的作用及用法讲解,包括了C#中Dictionary的作用及用法讲解的使用技巧和注意事项,需要的朋友参考一下 Dictionary<string, string>是一个泛型 他本身有集合的功能有时候可以把它看成数组 他的结构是这样的:Dictionary<[key], [value]> 他的特点是存入对象是需要与[key]值一一对应的存入该泛型 通过某一个一定