C# 字符到字符串错误

C# 字符到字符串错误,c#,string,char,C#,String,Char,我目前离一个工作程序只有两个错误。我将发布包含错误的行及其变量的定义,最后是错误。请告诉我哪里错了。多谢各位 private Dictionary<string, bool[]> letterData = new Dictionary<string, bool[]>(); public char[] mapNeurons() { char[] map = new char[this.letters.Items.Count];

我目前离一个工作程序只有两个错误。我将发布包含错误的行及其变量的定义,最后是错误。请告诉我哪里错了。多谢各位

    private Dictionary<string, bool[]> letterData = new Dictionary<string, bool[]>();


    public char[] mapNeurons()
    {
        char[] map = new char[this.letters.Items.Count];

        for (int i = 0; i < map.Length; i++)
        {
            map[i] = '?';
        }
        for (int i = 0; i < this.letters.Items.Count; i++)
        {
            double[] input = new double[Form1.DOWNSAMPLE_HEIGHT * Form1.DOWNSAMPLE_WIDTH];
            char ch = ((string)(this.letters.Items[i]))[0];
            bool[] data = this.letterData[ch]; //line contains errors
            for (int j = 0; j < input.Length; j++)
            {
                input[j] = data[j] ? 0.5 : -0.5;
            }

            int best = this.network.Winner(input);
            map[best] = ch;
        }
        return map;
    }
这里是错误

错误1“System.Collections.Generic.Dictionary.this[string]”的最佳重载方法匹配具有一些无效参数

错误2参数“1”:无法从“char”转换为“string”

我使用Char而不是String,因为如果使用String,它将返回加载的字符串的整行,我只想返回字符串的第一个字母

例如:data=A1:000001100000000110000000110000001110000001

如果使用string,它将返回整行,我只希望它返回'A'

新发现的问题: 当我输入数据时,我将数据放入“A1”键,这解释了我为什么使用字符串,所以当它没有找到“A1”因为它是字符时,它只找到“A”,这就是它返回“A”的原因,如果我使用字符串n只读取字符串行中的第一个字符“A”是否可能?

更新

试试这个:

if(this.letterData.ContainsKey(ch.ToString()))
    bool[] data = this.letterData[ch.ToString()]; 

更新

试试这个:

if(this.letterData.ContainsKey(ch.ToString()))
    bool[] data = this.letterData[ch.ToString()]; 

换成:

string sCh = ch.ToString();
bool[] data = null;
if (this.letterDate.ContainsKey(sCh)
{
   data = this.letterData[sCh];
}

此外,您可能需要考虑将字典上的键改为字符,

如何更改为:

string sCh = ch.ToString();
bool[] data = null;
if (this.letterDate.ContainsKey(sCh)
{
   data = this.letterData[sCh];
}

此外,您可能需要考虑更改字典上的关键字为char。

< P>变量CH很可能是使用字符串的字符,而不是

< P>变量CH很可能是使用字符串的字符,而不是

尝试如下:

char charString = 'a';
if (letterData.ContainsKey(charString.ToString()))
{
    // Found
}
请尝试以下操作:

char charString = 'a';
if (letterData.ContainsKey(charString.ToString()))
{
    // Found
}

首先,您需要使用将项添加到字典中

其次,字典的键是字符串,因此需要使用字符串作为索引。。。您可以通过在char实例上调用ToString来获取char的字符串表示形式

char ch = 'x';

private Dictionary<string, bool[]> letterData = new Dictionary<string, bool[]>();
letterData.Add(ch.ToString(), new []{true, false});

bool[] data = this.letterData[ch.ToString()];
或者将索引更改为char:

char ch = 'x';

private Dictionary<char, bool[]> letterData = new Dictionary<char, bool[]>();
letterData.Add(ch, new []{true, false});

bool[] data = this.letterData[ch];

首先,您需要使用将项添加到字典中

其次,字典的键是字符串,因此需要使用字符串作为索引。。。您可以通过在char实例上调用ToString来获取char的字符串表示形式

char ch = 'x';

private Dictionary<string, bool[]> letterData = new Dictionary<string, bool[]>();
letterData.Add(ch.ToString(), new []{true, false});

bool[] data = this.letterData[ch.ToString()];
或者将索引更改为char:

char ch = 'x';

private Dictionary<char, bool[]> letterData = new Dictionary<char, bool[]>();
letterData.Add(ch, new []{true, false});

bool[] data = this.letterData[ch];

要将char转换为string,可以调用ToString。这就是问题的答案

但哈菲扎斯当时正在做一个程序,他曾问过这个程序,他在哪里把字典转换成了字典。现在,他正在将字典中的数据存储到文本文件中,就像这样

A1:001110000111100001010100
现在在读这篇文章的时候,他只需要一部分,所以拆分函数就完成了。
要将字符转换为字符串,可以调用ToString。这就是问题的答案

但哈菲扎斯当时正在做一个程序,他曾问过这个程序,他在哪里把字典转换成了字典。现在,他正在将字典中的数据存储到文本文件中,就像这样

A1:001110000111100001010100
现在在读这篇文章的时候,他只需要一部分,所以拆分函数就完成了。

错误就在这里:无法将字符转换为字符串。也许你需要一个字典?我需要字典是其他函数的字符串,只有这一个我需要返回char而不是string。错误就在那里:你不能从char转换成字符串。也许你需要一个字典?我需要字典是其他函数的字符串,只有这一个我需要返回char而不是stringsir当我执行这两行时,程序在某个点停止,说“给定的键不在字典中”你的代码运行良好,没有错误,先生,不幸的是每次都返回“?”。我想我知道为什么,因为当我输入数据时,我把数据输入到'A1'键,这解释了我为什么使用字符串,所以当它没有找到'A1'因为它是字符时,它只找到'A'这就是它返回的原因?',如果我使用字符串n只读取字符串行中第一个字符'A'是否可能?当我同时执行这两行时,先生,程序在某一点停止,说“给定的密钥不在字典中”,您的代码运行良好,没有错误,不幸的是每次都返回“?”。我想我知道为什么,因为当我输入数据时,我将数据放入'A1'键,这解释了为什么我使用字符串,所以当它没有找到'A1'因为它是char时,它只找到'A',这就是它返回的原因?',如果我使用string n,是否可以只读取字符串行中的第一个字符,即“A”?我必须使用char,因为如果我使用string,它将读取整行,有没有办法只读取字符串行的第一个字母?@hafizhans:你的意思是想在字典中查找以该字母开头的项目?它不是那样工作的。我确实在字典中输入了特定数据的'A1'键。我必须使用char,因为如果我使用string,它将读取整行,有没有办法只读取字符串行的第一个字母?@hafizhans:你的意思是想在字典中查找以该字母开头的项目
? 它不是那样工作的。我确实为那个特定的数据在字典中输入了'A1'键程序在某个点停止说'给定的键在字典中不存在'Ok,在访问字典之前,您需要检查字典是否包含SKEY。程序在某个点停止,说“字典中不存在给定的密钥”。好的,您需要在访问字典之前检查字典是否包含SKEY。实际上,这只是程序的一小部分,我只是认为可以对这些行进行一些修改以解决错误实际上这只是程序的一小部分,我只是认为可以对这些行进行一些修改以解决错误是的,如果将字符添加到程序中,效果很好,问题只会在从外部文件加载数据时出现,因为它的字符串,它将读取整行,因此识别框中不会显示任何输出,因为您需要修改代码而不是var ch=line.ToUpper;do var ch=line.Split':'[0].ToUpper;在btnLoad_Click函数中。这正是我需要的原因,.Split函数。a再次非常感谢您,先生!是否可以将其设置为“A1”,但仅在识别框上显示“A”?您可以使用.SubString。选中此处是的,如果将字符添加到程序中,它工作正常,问题仅在从外部文件加载数据时出现,因为它的字符串将读取整行,因此识别框中不会显示输出,因为您需要修改代码而不是var ch=line.ToUpper;do var ch=line.Split':'[0].ToUpper;在btnLoad_Click函数中。这正是我需要的原因,.Split函数。a再次非常感谢您,先生!是否可以将其设置为“A1”,但仅在识别框上显示“A”?您可以使用.SubString。检查这里