3

例如:- 将 2 替换为 0 用于以下输入输入:string strInput = "21212121"; 输出:“01010101”

如何用 LINQ 做到这一点。注意: dataType 是string

4

4 回答 4

12

为什么你需要用 LINQ 来做,简单的 string.Replace 应该可以解决问题。

string str = "21212121".Replace("2","0");

编辑:如果你必须使用 LINQ,那么可能是这样的:

string  newStr = new string(str.Select(r => (r == '2' ? '0' : r)).ToArray());
于 2012-11-12T12:41:57.933 回答
9

给你的面试官

string output = new String(input.Select(ch => ch == '2' ? '0' : ch).ToArray());

我认为打算看看你是否理解字符串可以被视为字符序列。面试经常有与现实生活中的编程无关的问题。我个人讨厌关于带有new修饰符的继承树的问题。

于 2012-11-12T12:46:07.870 回答
1

要更改单个字符,您可以使用参数的重载Replacechar

string s = "21212121";
s = s.Replace('2', '0');

这可能比接受字符串的重载稍微高效一些。


如果出于某种原因您绝对必须使用 LINQ,那么您可以这样做:

s = new string(s.Select(c => c == '2' ? '0' : c).ToArray());

但是你不应该在生产代码中这样做。它比string.Replace.

于 2012-11-12T12:43:41.703 回答
0
string strInput = "21212121";

char from = '2';
char to = '0';

var strOutput = new string(strInput.Select(c => c.Equals(from) ? to : c)
                                   .ToArray());

Console.WriteLine(strOutput);
于 2012-11-12T12:45:58.973 回答