Перевести с Delphi на C# маленький блок кода
Формулировка задачи:
Function CodingStr(Str,Key:String):String;
Const
Letters = ['А'..'я'];
Var
i,j : Integer;
Begin
j:=1;
For i:=1 To Length(Str) Do
If Str[i] In Letters Then
Begin
Str[i]:=Char(((Ord(Str[i])-Ord('А')+Ord(Key[j])-Ord('0')+1)
Mod (Ord('я')-Ord('А')+1))+Ord('А'));
Inc(j);
If j>Length(Key) Then j:=1;
End;
Result:=Str;
End;Решение задачи: «Перевести с Delphi на C# маленький блок кода»
textual
Листинг программы
string CodingStr(string s, string key)
{
var letters = new char[64];
for (int i = 0, j = 'А'; j <= 'я'; i++, j++)
letters[i] = (char)j;
var charStr = s.ToCharArray();
for (int i = 0, j = 0; i < charStr.Length; i++)
{
if (!letters.Any(c => charStr[i] == c))
continue;
charStr[i] = (char)((charStr[i] - 'А' + key[j] - '0' + 1)
% ('я' - 'А' + 1 + 'А'));
if (key.Length == ++j) j = 0;
}
return new String(charStr);
}