Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用字典将字符串转换为字符_C# - Fatal编程技术网

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