简体   繁体   English

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

[英]C# How to convert a list of strings with not a single character to char?

I have list of strings which has such items inside - 65,66... so on. 我有在其中包含此类项目的字符串列表-65,66 ...以此类推。

When I'm trying to use Convert.ToChar(item) , I'm getting error that single string should have only one character. 当我尝试使用Convert.ToChar(item) ,我收到一个错误消息,即单个字符串应仅包含一个字符。 What I can't understood is what I can really use besides the Convert function to turn 65 (string) into char = A value. 我不明白的是,除了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();}

Here is ending working code, for those who may wonder why i need such type of convert.Its Caesarus encrypter. 对于那些可能想知道为什么我需要这种类型的convert.Its它的Caesarus加密器的人,这里是结束的工作代码。 Working only for upper-case letters but its working now with all help of those guys above. 仅适用于大写字母,但在上述这些人的所有帮助下,现在可以使用。

If items of your list are int values such as 65,66, ... that seems to be character codes, you can try: 如果列表中的项目是int值,例如65,66,...似乎是字符代码,则可以尝试:

Convert.ToChar(Convert.ToInt32(item))

For example: 例如:

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

Encryption: 加密:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM