问题描述
我想在一个文本框中输入一个加密的密码,然后按一个按钮在另一个文本框中输入解密的密码。 加密非常简单,我有一个excel表,其中每个字符都有其等效项。所以基本上我需要用每个字符替换掉的字符替换,我不知道这是否有意义...
示例:
Conversion Table :
@ = p
# = a
) = s
Input string : @#))
Output string : pass
最简单的方法是什么?
解决方法
您可以使用将“已加密”字符映射到“已解密”字符的字典:
var repl = new Dictionary<char,char> { {'@','p'},{'#','a'},{')','s'} };
并通过LINQ对其进行评估
var input = "@#))";
var output = new string(input.Select(c => repl[c]).ToArray());
或循环
var sb = new StringBuilder();
foreach (var c in input)
{
sb.Append(repl[c]);
}
var output = sb.ToString();
,
这够简单吗?
var map = new (char before,char after)[]
{
('@','p'),('#','a'),(')','s'),};
var input = "@#))";
var output = map.Aggregate(input,(a,x) => a.Replace(x.before,x.after));
或更老的学校:
var output = input;
foreach (var m in map)
{
output = output.Replace(m.before,m.after);
}