C# 用c语言在字典中存储字母表的最简单方法#
我要求把字母表存到字典里。我已按照以下步骤进行操作:C# 用c语言在字典中存储字母表的最简单方法#,c#,.net,C#,.net,我要求把字母表存到字典里。我已按照以下步骤进行操作: static void Main(string[] args) { char[] c = "ABCDFFGHIJKLMNOPQRSTUVWXYZ".ToCharArray(); int key = 1; Dictionary<int, string> dictionary = new Dictionary<int, string>(); foreach (char value in c)
static void Main(string[] args)
{
char[] c = "ABCDFFGHIJKLMNOPQRSTUVWXYZ".ToCharArray();
int key = 1;
Dictionary<int, string> dictionary = new Dictionary<int, string>();
foreach (char value in c)
{
dictionary.Add(key, value.ToString());
key++;
}
}
static void Main(字符串[]args)
{
char[]c=“abcdffghijklmnopqrstuvxyz”.ToCharArray();
int键=1;
字典=新字典();
foreach(c中的字符值)
{
Add(key,value.ToString());
key++;
}
}
我不想先将字母表存储在数组中,然后再存储在字典中。是否有其他方法可以实现我的要求?尝试以下方法:
for(char c = 'A'; c <= 'Z'; c++) {
int key = c - 'A' + 1;
dictionary.Add(key, c.ToString());
}
for(char c='A';c我不太清楚为什么不想使用数组,但可以使用ASCII
使用键65-64(等于1)和字母(char)65
A
从i=65(A)运行到i=90(Z)char和int是可互换的,您可以这样做
字典=新字典()
for(char c='A';c可以在Dictionary对象上使用集合初始值设定项:
var i = 0;
var dictionary = new Dictionary<int, string>
{
{++i, "A"},
{++i, "B" }
// etc.
};
var i=0;
var字典=新字典
{
{++i,“A”},
{++i,“B”}
//等等。
};
我不想先将字母表存储在数组中,然后再存储在字典中
然后只需初始化字典:
Dictionary<int, string> alphabet= new Dictionary<int, string>()
{
{ 1, "A" },
{ 2, "B" },
{ 3, "C" } // etc
};
听起来像是一个问题。你为什么要求在字典中存储字母表
?最终目标是什么?为什么我经常看到人们在foreach
之前使用tocharray
?字符串已经是一个字符序列了。你不必先将它们转换成数组。有什么教程或者什么要说的吗要做到这一点,你可以说foreach(ABCDEFG中的char c)
如果字典的目的是查找字母表的第n个字母,只需使用(char)('A'-1+n)
表示大写,使用(char)('A'-1+n)
表示小写。不需要字典。
Dictionary<int, string> alphabet= new Dictionary<int, string>()
{
{ 1, "A" },
{ 2, "B" },
{ 3, "C" } // etc
};
var values = Enumerable
// Returns values 65 to 92 (I think 92)
.Range((int)'A', (int)'Z' - (int)'A')
// Select that can automatically give me the index of each value
.Select((Val, Index) => new { Index, Val })
// Creates a dictionary...
.ToDictionary((iv) => iv.Index, (iv) => iv.Val.Tostring());