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