c#如何让一个未定字符串作为现有对象的属性

问题遇到的现象和发生背景

c#如何用一个“值”作为一个现有的一个对象的属性名,怎么写?

遇到的现象和发生背景,请写出第一个错误信息
用代码块功能插入代码,请勿粘贴截图。 不用代码块回答率下降 50%
js可以这么写
let name = [123,234,456,123]
let obj = {
“123”:0
}
obj[name[0]] = (obj[name[0]]? 0 : obj[name[0]]+1) //但这种写法在C#会报错
obj[name[1]] = 3 //但这种写法在C#会报错
运行结果及详细报错内容
我的解答思路和尝试过的方法,不写自己思路的,回答率下降 60%
我想要达到的结果,如果你需要快速回答,请尝试 “付费悬赏”

是这意思么?


static void Main(string[] args)
    {
        string[] name = { "123", "234", "456", "123" };
        var dic = new Dictionary<string, int>();
        dic.Add("123", 0);
        dic.Add("234", 1);
        dic[name[0]] = dic[name[0]] == 0 ? 0 : dic[name[0]] + 1;
        dic[name[1]] = dic[name[1]] == 0 ? 0 : dic[name[1]] + 1;

        Console.WriteLine(dic[name[0]]);
        Console.WriteLine(dic[name[1]]);

    }