例如:- 将 2 替换为 0 用于以下输入输入:string strInput = "21212121"; 输出:“01010101”
如何用 LINQ 做到这一点。注意: dataType 是string。
为什么你需要用 LINQ 来做,简单的 string.Replace 应该可以解决问题。
string str = "21212121".Replace("2","0");
编辑:如果你必须使用 LINQ,那么可能是这样的:
string newStr = new string(str.Select(r => (r == '2' ? '0' : r)).ToArray());
给你的面试官
string output = new String(input.Select(ch => ch == '2' ? '0' : ch).ToArray());
我认为打算看看你是否理解字符串可以被视为字符序列。面试经常有与现实生活中的编程无关的问题。我个人讨厌关于带有new
修饰符的继承树的问题。
要更改单个字符,您可以使用带参数的重载Replace
char
:
string s = "21212121";
s = s.Replace('2', '0');
这可能比接受字符串的重载稍微高效一些。
如果出于某种原因您绝对必须使用 LINQ,那么您可以这样做:
s = new string(s.Select(c => c == '2' ? '0' : c).ToArray());
但是你不应该在生产代码中这样做。它比string.Replace
.
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);