c#如何将不包含单个字符的字符串列表转换为char

本文关键字:字符串 列表 转换 char 字符 包含单 | 更新日期: 2023-09-27 18:13:56

我有一个字符串列表,里面有这样的项目- 65,66…等等。

当我试图使用Convert.ToChar(item)时,我得到的错误是单个字符串应该只有一个字符。我不明白的是,除了Convert函数之外,我还能真正使用什么来将65(字符串)转换为char = A值。

static void Main(string[] args)
    {
        List<char> Alphabet = new List<char>();
        List<string> Message = new List<string>();
        for (int i = 65; i < 91; i++)
        {
            Alphabet.Add((char)i);
        }
        var stroke = Console.ReadLine().ToString();
        foreach (var letter in stroke)
        {
            if (Alphabet[Alphabet.Count - 1] == letter)
            {
                Message.Add((66.ToString()));
            }
            if (Alphabet[Alphabet.Count - 2] == letter)
            {
                Message.Add((65.ToString()));
            }
            if (Convert.ToChar(" ") == letter)
            {
                Message.Add(" ");
            }
            foreach (var item in Alphabet)
            {
                if (item == letter && letter != Alphabet[Alphabet.Count -1] && letter != Alphabet[Alphabet.Count - 2])
                {
                    Message.Add((item + 2).ToString());
                }
            }
        }
        foreach (var item in Message)
        {
            if (item != " ")
            {
                Console.Write(Convert.ToChar(Convert.ToInt16(item)));
            }
            else
            {
                Console.Write(" ");
            }
        }
        Console.ReadLine();}

这里是结束工作代码,对于那些可能想知道为什么我需要这种类型的转换。它是凯撒鲁斯加密器。只支持大写字母,但在上面这些人的帮助下,现在可以了。

c#如何将不包含单个字符的字符串列表转换为char

如果列表中的项是整型值,例如65,66,…这似乎是字符代码,你可以试试:

Convert.ToChar(Convert.ToInt32(item))
例如:

var str="65";
var chr= Convert.ToChar(Convert.ToInt32(str));
//The output is A

加密:

var stroke = Console.ReadLine();
var enc = new String(stroke.ToCharArray().Select(c=>Convert.ToChar(c+2)).ToArray());
Console.WriteLine(enc);