相关疑难解决方法(0)

在C#中将char转换为int

我在c#中有一个char:

char foo = '2';
Run Code Online (Sandbox Code Playgroud)

现在我想把2变成一个int.我发现Convert.ToInt32返回char的实际十进制值而不是数字2.以下将起作用:

int bar = Convert.ToInt32(new string(foo, 1));
Run Code Online (Sandbox Code Playgroud)

int.parse也适用于字符串.

C#中没有本地函数从char到int而不是字符串吗?我知道这是微不足道的,但似乎很奇怪,直接进行转换没有任何原生的东西.

c# int char

129
推荐指数
10
解决办法
31万
查看次数

如何验证UPC或EAN代码?

我需要一个C#.NET函数来评估键入或扫描的条形码是否是有效的全球贸易项目编号(UPC或EAN).

条形码校验位

条形码编号的最后一位是计算机检查数字,用于确保条形码的正确编码.GTIN校验数字计算器

.net c# checksum barcode

20
推荐指数
4
解决办法
4万
查看次数

c#为什么返回49:Convert.ToInt32('1')

可能重复:
c#将char转换为int

这有效:

int val = Convert.ToInt32("1");
Run Code Online (Sandbox Code Playgroud)

但这不是:

int val = Convert.ToInt32('1'); // returns 49
Run Code Online (Sandbox Code Playgroud)

这不应该转换为实际的int吗?

c#

9
推荐指数
1
解决办法
5550
查看次数

char到int转换得到ASCII

这可能是一个不成熟的问题,可能是我遗漏了一些东西,但我的问题是

试图转换charint拿到ASCII的那个值char,在大多数情况下,我得到正确/预期的ASCII的特定代码char,在某些情况下,我不知道.有人能解释一下为什么吗?

例子:

// Example 1:-   

Console.WriteLine((int)'a');

// gives me 97 perfect!

// Example 2:-

Console.WriteLine((char)1); gives me ?

// now 

Console.WriteLine((int )'?');

// this should give me 1, instead it gives me 9786 why?
Run Code Online (Sandbox Code Playgroud)

这发生在ASCII> 127或ASCII < 32.

c#

9
推荐指数
1
解决办法
3万
查看次数

如何在C#中将字符串转换为int数组

我正在制作一个信用卡验证程序,其中我要求的是一个16位数字(信用卡号)的字符串,我想将其转换为int数组.我怎么做?然后我需要将从第一个数字开始的每个其他数字乘以2.

char[] creditNumbers = creditCardNumber.ToCharArray();

creditNumbers[0] = (char)((int)(creditNumbers[0] * 2));
creditNumbers[2] = (char)((int)(creditNumbers[2] * 2));
creditNumbers[4] = (char)((int)(creditNumbers[4] * 2));
creditNumbers[6] = (char)((int)(creditNumbers[6] * 2));
creditNumbers[8] = (char)((int)(creditNumbers[8] * 2));
Run Code Online (Sandbox Code Playgroud)

这是我到目前为止所做的,但我的铸造没有正确完成.我该如何解决这个问题?

c# checksum credit-card

2
推荐指数
1
解决办法
7910
查看次数

主脑游戏的主菜单

我正在尝试为主题游戏创建菜单,可以使用C#在命令提示符下运行.我遇到的问题是捕获菜单的用户输入.如果他们输入2然后它应该显示他们输入了第二个,如果没有,那么它会说他们没有显示第二个.

我遇到的问题是它不会将用户输入转换为工作整数,并且要么说它不能显式地从System.ConsoleKeyInfo转换为int或字符串转换为int.

using System;

namespace MasterMind
{
    class Program
    {
        static void Main(string[] args)
        {

            Console.ForegroundColor = ConsoleColor.Green;
            Console.WriteLine("               MasterMind's Main Menu");
            Console.WriteLine("                    1: Play");
            Console.WriteLine("                    2: Help");
            Console.WriteLine("                    0: Exit");
            int userinput = Console.ReadKey();
            if (Nuserinput == 2);
            {
                Console.WriteLine("This is a number 2");
            }
            else
            {
                Console.WriteLine("This is not a number 2");
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

c#

2
推荐指数
1
解决办法
172
查看次数

If和Else if block仅运行Else if

看起来这整个简单的代码是正确的,但是当我点击开始并输入任何数字(例如4或6)时,唯一的输出是每次"else if"!

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication6
{
    class Program
    {
        static void Main(string[] args)
        {
            int c = Convert.ToInt32(Console.Read());
            if (c >= 0  && c < 5)
            {
                Console.Write("# is > 0");
            } 
            else if (c >= 5)
            {
                Console.Write("# is > 5");
            }
            Console.ReadKey();

        }
    }
}
Run Code Online (Sandbox Code Playgroud)

c# if-statement

1
推荐指数
1
解决办法
90
查看次数

在C#中创建所有ASCII字符的数组

我目前正在创建一个程序,它使用数组来分类文本文档中的ASCII字符.在创建阵列本身时,我很困惑,这是项目功能的关键部分.还建议我使用charfrequency对象创建数组,我知道我的代码对于这个特定的项目来说并不完全正确.我使用了另一个类似项目的代码,但不确定如何将其转换为从文件中读取文本的项目.我已经包含了我的charfrequency类代码,以供参考我正在尝试做的一般概念.我还需要以这样的格式显示结果:

H(72) = 1
e(101) = 1
l(108) = 2
o(111) = 1
.(46) = 1 
Run Code Online (Sandbox Code Playgroud)

我不太了解编程,所以使用相对简单的术语进行详细解释会非常有帮助.

{
public class CharFrequency
{
    private char m_character;
    private long m_count;

    public CharFrequency(char ch)
    {
        Character = ch;
        Count = 0;
    }

    public CharFrequency(char ch, long charCount)
    {
        Character = ch;
        Count = charCount;
    }

    public char Character
    {
        set
        {
            m_character = value;
        }

        get
        {
            return m_character;
        }
    }

    public long Count
    {
        get
        {
            return m_count;
        }
        set
        {
            if …
Run Code Online (Sandbox Code Playgroud)

c# arrays ascii

0
推荐指数
1
解决办法
3060
查看次数

简化方法?

我最近接受了一个项目作为个人爱好,以提高我的代码质量.我已经制作了这个方法,但我觉得我肯定是以某种方式工作了,我觉得有一种非常简单的方法可以做到这一点,而不必像这样一个大的开关?

我知道0-9可能只是.ToString()'然后解析为int并返回,但我不确定如何合并这个想法,同时还考虑其余的开关案例.

public static short ParseHeight(char input)
{
    switch (input)
    {
        case '0':
            return 0;
        case '1':
            return 1;
        case '2':
            return 2;
        case '3':
            return 3;
        case '4':
            return 4;
        case '5':
            return 5;
        case '6':
            return 6;
        case '7':
            return 7;
        case '8':
            return 8;
        case '9':
            return 9;
        case 'a':
            return 10;
        case 'b':
            return 11;
        case 'c':
            return 12;
        case 'd':
            return 13;
        case 'e':
            return 14;
        case 'f':
            return 15;
        case 'g':
            return …
Run Code Online (Sandbox Code Playgroud)

.net c# switch-statement

0
推荐指数
1
解决办法
117
查看次数

给定的密​​钥不在字典中.C#

我想使用DictionaryAction调用一些静态方法
这里是我的代码:

public class  Works
{

    public static void DoWorkA()
    {
        Thread.Sleep(1000);
        Console.WriteLine("Doing Work A");
    }
    public static void DoWorkB()
    {
        Thread.Sleep(2000);
        Console.WriteLine("Doing Work B");
    }
    public static void DoWorkC()
    {
        Thread.Sleep(3000);
        Console.WriteLine("Doing Work C");
    }
}  
Run Code Online (Sandbox Code Playgroud)

这是我的主要方法

 try
        {
            var DoJob = new Dictionary<int, Action>();
            DoJob.Add(1, () => Works.DoWorkA());
            DoJob.Add(2, () => Works.DoWorkB());
            DoJob.Add(3, () => Works.DoWorkC());

            var input = Console.Read();
            var job = DoJob[input];
        }
        catch(Exception ex)
        {
            Console.WriteLine(ex.Message);

        }
        Console.ReadKey();  
Run Code Online (Sandbox Code Playgroud)

foreach用来迭代键和密钥存在 …

c# dictionary exception

-1
推荐指数
1
解决办法
1119
查看次数