创建每9个数字循环一次的字典.c#



我不熟悉编程,抱歉,如果我不能正确解释。我正在尝试迭代一个列表,其中的项目是9的倍数。所以这个列表可以有9 18 27…物品。我有代码工作,它读取时,有9使用这个字典。但我希望它能适用于9的倍数。

var alphabets = new Dictionary<int, string>()
{
{1,"A2"},{2,"B2"},{3,"C2"},{4"D2"},
{5,"E2"},{6,"F2"}, {7,"G2"},{8,"H2"},
{9,"I2"}
};

例如,如果有18个条目,它希望这个字典具有这个函数。

var alphabets2 = new Dictionary<int, string>()
{
{1,"A2"},{2,"B2"},{3,"C2"},{4"D2"},
{5,"E2"},{6,"F2"}, {7,"G2"},{8,"H2"},
{9,"I2"},
{10,"A3"},{11,"B3"},{12,"C3"},{13"D3"},
{14,"E3"},{15,"F3"}, {16,"G3"},{17,"H3"},
{18,"I3"}
};

谢谢

正如@ diplomacynotar评论的那样,听起来好像您需要输入int value以转换为一致基于9的倍数的相关字符串值。如果是这种情况,我同意@ diplomacynotar的观点,即您不需要存储任何东西,只需创建一个函数来根据int值输出所需的字符串值。下面是一个函数,它将输出示例中的模式。

// value should be 0
string ConvertIntToSpecificString(int value)
{
// this will give you an int value 0-8
var modValue = (value - 1) % 9;
// The unicode for 'A' is 65
var firstCharValue = (char)(65 + modValue);
// This will return a whole number giving the iteration count. FE: 19 / 9 = 2
// Adding 2 to fit the pattern stated in the examples.
var secondValue = ( value / 9 ) + 2 ;

return $"{firstCharValue}{secondValue}";
}

最新更新