How about the following:
var a = "12345";
var c = "54321";
var e = "0A9B8C7D6E5F4G3H2I1";
// create a mutable copy of e
var builder = new StringBuilder(e);
for (var i = 0; i < e.Length; ++i) // for each character position in e
{
// look for that character in a
var index = a.IndexOf(e[i]);
// if we found it, replace the character at that position with the
// corresponding character from c
if (index >= 0) { builder[i] = c[index]; }
}
var result = builder.ToString(); // 0A9B8C7D6E1F2G3H4I5