C# 来自“的代码练习”;节目采访曝光”;

C# 来自“的代码练习”;节目采访曝光”;,c#,C#,这是《编程访谈》第二版第78和79页中的代码 -删除指定字符练习(下面继续) void Main() { string se=“我是要修改的字符串”; string re=“amthe”; 控制台写入线(se); 控制台写入线(re); char[]s=se.ToCharArray(); char[]r=re.ToCharArray(); bool[]标志=新bool[128]; int len=s.长度; int src,dst; 对于(src=0;src,这不是一个C程序。它是扩展名为.cs

这是《编程访谈》第二版第78和79页中的代码 -删除指定字符练习(下面继续)

void Main()
{
string se=“我是要修改的字符串”;
string re=“amthe”;
控制台写入线(se);
控制台写入线(re);
char[]s=se.ToCharArray();
char[]r=re.ToCharArray();
bool[]标志=新bool[128];
int len=s.长度;
int src,dst;
对于(src=0;src,这不是一个C程序。它是扩展名为.cs的C源代码

<> 80、90年初,当我们C程序员学习C++时,我们都这样做:C和转置C++。这是学习C++最差的方法。用C语言做的更差。在C语言编程时,千万不要认为C.

FWIW,以下是您在.NET 4中遇到的问题的解决方案:

Console.WriteLine(string.Concat(se.Where(ch => re.IndexOf(ch) < 0)));

您的问题是,您正在索引到
r
(一个5元素数组),但循环到
s.Length
(25)

将第12行更改为
int len=r.Length;
,将第20行更改为
len=s.Length;

Console.WriteLine(string.Concat(se.Where(ch => re.IndexOf(ch) < 0)));
Console.WriteLine(new Regex("["+re+"]").Replace(se, ""));