C# 使用字典将字符串转换为字符
我有这个密码C# 使用字典将字符串转换为字符,c#,C#,我有这个密码 static string WordMap(string value) { var strings = value .Select(c => { string word; if (!wordMap.TryGetValue(c, out word)) word =
static string WordMap(string value)
{
var strings = value
.Select(c =>
{
string word;
if (!wordMap.TryGetValue(c, out word))
word = c.ToString();
return word;
});
return string.Join("", strings);
}
还有一本像这样的字典-
static Dictionary<char, string> wordMap = new Dictionary<char, string>()
{
{'a', "Alpha"}...
}
倒着做就行了
static Dictionary<string, char> Mapword = new Dictionary<string, char>()
{
{"Alpha", 'a'}...
}
静态字典Mapword=新字典()
{
{“Alpha”,“a'}。。。
}
看起来您要做的是将字符串映射回字符。这假设您已经为完成了工作
static Dictionary<char, string> wordMap = new Dictionary<char, string>()
{
{'a', "Alpha"}...
}
输出:
Alice Bob Charlie
ABC
Dictionary wordMap=newdictionary()
{
{'a',“Alpha”},
{'b',“Beta”},
{'d',“Dalta”},
{'g',“Gama”},
};
var input=“Alpha-Beta-Gama-Dalta”;
var output=input.Split()
.Select(word=>wordMap.Where(x=>x.Value==word)
.Select(x=>x.Key).First());
var result=string.Join(“,输出);
控制台写入线(结果);
//输出:
//abgd
使用string.tocharray()你的意思是把“Alpha-Delta-Charlie”变成“adc”吗?请提供输入和输出示例,以澄清您的问题。我认为您误解了词典
的用途。请提供输入和预期输出:[您拥有的]和[您想要的]。该词典大约是{a',alpha}的500倍,每次使用不同的字母和符号。
static Dictionary<string, char> charMap;
public static void ConvertLookup ()
{
charMap = wordMap.ToDictionary(e => e.Value, e => e.Key);
}
static Dictionary<char, string> wordMap = new Dictionary<char, string>();
static Dictionary<string, char> charMap = new Dictionary<string, char>();
public static void InitializeLookups()
{
wordMap = new Dictionary<char, string>
{
{ 'A', "Alice" },
{ 'B', "Bob" },
{ 'C', "Charlie" }
};
charMap = wordMap.ToDictionary(e => e.Value, e => e.Key);
}
public static string ConvertCharToWords(string chars)
{
var strings = chars
.Select(c =>
{
string word;
if (!wordMap.TryGetValue(c, out word))
word = c.ToString();
return word;
});
return string.Join(" ", strings);
}
public static string ConvertWordsToChars(string words)
{
var strings = words.Split(' ')
.Select(c =>
{
char character;
if (!charMap.TryGetValue(c, out character))
character = '?';
return character;
});
return string.Join("", strings);
}
public static void Main(string[] args)
{
InitializeLookups();
string words = ConvertCharToWords("ABC");
string chars = ConvertWordsToChars(words);
Console.WriteLine(words);
Console.WriteLine(chars);
}
ABC
Alice Bob Charlie
ABC
Dictionary<char, string> wordMap = new Dictionary<char, string>()
{
{'a', "Alpha"},
{'b', "Beta"},
{'d', "Dalta"},
{'g', "Gama"},
};
var input = "Alpha Beta Gama Dalta";
var output = input.Split()
.Select(word => wordMap.Where(x => x.Value == word)
.Select(x => x.Key).First());
var result = string.Join("", output);
Console.WriteLine(result);
// Output:
// abgd