Distinct函数在应该工作的时候没有工作。这是我正在使用的输入:
one one two
Distinct
End
这是我的全部代码:
using System;
using System.Collections.Generic;
using System.Linq;
namespace Array.Processing
{
class Program
{
static void Main(string[] args)
{
string input = Console.ReadLine();
List<string> texts = input.Split(" ").ToList();
string text = Console.ReadLine();
int a = 0;
while (text != "END")
{
text = Console.ReadLine();
List<string> infos = text.Split(" ").ToList();
if (text == "Distinct")
{
texts = texts.Distinct().ToList();
}
if (text == "Reverse")
{
texts.Reverse();
}
if (infos[0] == "Replace")
{
if (texts.Count > int.Parse(infos[1]) && int.Parse(infos[1]) >= 0)
{
texts.RemoveAt(int.Parse(infos[1]));
texts.Insert(int.Parse(infos[1]), infos[2]);
}
else
{
a++;
}
}
}
for(int n = 0; n < a; n++)
{
Console.WriteLine("Invalid input!");
}
foreach (string info in texts)
{
Console.Write(info + " ");
}
}
}
}
这就是我收到的输出:
one one two
我不明白为什么两者都是";一个";残余到目前为止,我已经看了一个多小时的代码,但仍然一无所获。。。
首先你有
string input = Console.ReadLine(); // one one two
接下来你有
string text = Console.ReadLine(); // Distinct
接下来,第一次在while
中有
text = Console.ReadLine(); // End
在这一点上,您检查CCD_;结束";所以你永远不会在列表中调用Distinct()
。