在c#

时间:2018-06-21 13:33:06

标签: c# arrays indexing

让我们假设用户在控制台中输入了两个或几个用空格分隔的字符串。

我正在使用以下代码行将输入组织到一个数组中:

string[] inputs = Console.ReadLine().Split();
string firstName = inputs[0];
string lastName = inputs[1];

发布此文件的目的是为了更好地了解Console.ReadLine().Split();命令。 Microsoft文档对我来说有点丢失。该命令是否读取输入并使它们被空格分隔?我以为是这种情况,因为在代码片段中,我们将索引0声明为字符串变量firstName,将索引1声明为字符串变量lastName。

我还看到此命令用作Console.ReadLine().Split(" ");。这提供了什么不同的功能?

编辑:对于重复通知:该问题与该命令的机制以及如何将其专门放入数组有关。感谢您的回复。 “重复项”较为笼统,未能成功回答我的问题。

2 个答案:

答案 0 :(得分:3)

这是两个不同的“操作”:Console.ReadLine()String.Split(),首先从用户输入返回string,然后将其拆分。等同于:

string input = Console.ReadLine();
string[] result = input.Split(); 

您可以在点运算符之后调用任意数量的方法(属性,字段等),但如果使代码可读(这在本示例中非常简单),它将更好。 >

如果未传递任何参数,则默认情况下,它是MSDN中的空白:

  

如果分隔符参数为null或不包含任何字符,则该方法将空格字符视为定界符。空格字符由Unicode标准定义;如果将它们传递给Char.IsWhiteSpace方法,它们将返回true。

参考: Console.Readline() String.Split . Operator

答案 1 :(得分:1)

从控制台读取输入

var inputs = Console.ReadLine();

用空格分隔输入字符串

var splitInputs = inputs.Split(' ');

检查拆分数组是否至少包含一个元素并获取其值

string firstName = splitInputs.Count()>0 ? splitInputs[0] : string.Empty;

检查拆分数组是否至少包含两个元素并获取其值

 string lastName = splitInputs.Count() > 1 ? splitInputs[1] : string.Empty;