例:- 次の入力 Input の 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);