C#分组编号

时间:2011-03-03 12:58:52

标签: c#

我正在生成一个excel输出,其中的字段在每条记录中都有重复的数字。该数字在另一个字段中的值更改时递增。

Example: Field1     field2

           1         A
           1         A
           2         B
           3         D
           4         F
           4         F
           4         F
           5         R

我希望1代表A,2代表B,3代表D等,而不是重复数字。

2 个答案:

答案 0 :(得分:1)

解释你的问题有点难,但也许你想要这样的东西:

Dictionary<string,int> dict=new Dictionary<string,int>();
int counter=1;
int IdOfString(string s)
{
  int i;
  if(dict.TryGetValue(s,i))
    return i;
  else
  {
     i=counter;
     counter++;
     dict.Add(s,i);
     return i;
  }
}

为您传递到IdOfString

的每个唯一字符串返回一个新数字

答案 1 :(得分:0)

你的问题不是很清楚,但这里有一些建议:

  • 您可以生成带有数字(1,2,3等)的列和带有Char公式的第二列。 例如:
    [A]      [B]
    1        =Char(A1 - 64)
    2        =Char(A2 - 64)
    3        =Char(A3 - 64)

如果您有字符并希望获取值,则可以使用代码函数执行相反的操作:

    [A]             [B]
    =Code(A1) - 64   A
    =Code(A2) - 64   B
    =Code(A3) - 64   C
  • 否则,您可以通过强制转换为char来直接为C#中的两列生成值(并且对于int来反向生成)。