如何将ReadLine()中用户输入的每一行转换为单独的字符列表?C#控制台



打开控制台应用程序时,用户应该同时粘贴成排的点和星(看起来像矩阵(。我想把每一行都列成一个单独的列表。我想我知道如何为列做这件事,但当涉及行时,我无法控制该如何做。有人能帮一个新人吗?

如果你知道一点LINQ ,那还不错

List<List<char>> lines = new List<List<char>>();
string line = string.Empty;
while((line = Console.ReadLine()) != null && line != string.Empty)
{
lines.Add(line.Select(x => x).Where(x => x != ' ').ToList());
}

我们有一个字符列表,因此每个"行"在此List>中表示为一个"行"。然后,我们需要继续从控制台读取行,直到它不再返回值。这就是我们获取用户输入的每一行的方式。因此,现在我们有一个字符串line来处理以这种方式读取的每一行。LINQ的一小部分允许我们遍历行中的每个字符x,其中字符x不是空格,并将结果(所有非空白字符(强制转换为字符列表。每次完成此操作时,我们都会创建一个新行。最后,我们只需将该行添加到我们拥有的字符行列表中,瞧。希望这能帮助

我不知道你的输入是如何格式化的,但你可以用这样的东西来分割.Splitt((方法中的一个空格或一个特定字符。

public List<string> SplitList = new List<string>();
public void SplitByRow()
{
var userInput = Console.ReadLine();
string[] splitArray = userInput != null ? userInput.Split(' ') : null;
SplitList = splitArray != null ? splitArray.ToList() : null;
}
public void Main(string res) {
var passedValues = res.Select(x => x).ToList();   
}

最新更新