gpt4 book ai didi

c# - 通过容器的内联初始化向字典添加值

转载 作者:IT王子 更新时间:2023-10-29 04:26:21 26 4
gpt4 key购买 nike

我有以下 City 类。每个城市对象都包含一个字典,其中键是语言标签(比方说:“EN”、“DE”、“FR”...),哪些值是相应语言的城市名称(例如:Rome/Rom 等) .

public class City:
{
private IDictionary<string, string> localizedNames = new Dictionary<string, string>(0);
public virtual IDictionary<string, string> Names
{
get { return localizedNames ; }
set { localizedNames = value; }
}
}

无论使用哪种语言,大多数城市都有相同的名称,因此 City 构造函数实际上创建了英语映射:

  public City(string cityName)
{
this.LocalizedNames.Add("EN", cityName);
}

问题来了:有没有办法通过内联初始化添加其他值?

我尝试了以下不同的变体但没有语义成功(不编译):

AllCities.Add(new City("Rome") { Names["DE"] = "Rom" };

我也试过创建一个新的字典,但这显然会覆盖“EN”参数:

AllCities.Add(new City("Rome") { Names = new Dictionary<string, string>() { { "DE", "Rom" } } };

有人知道这是否可行吗?

最佳答案

这是实际的内联初始化:

private IDictionary<string, string> localizedNames = new Dictionary<string, string>{
{"key1","value1"},
{"key2","value2"}
};

更新:如果您使用的是 C# 6.0 或更高版本,还支持基于键值的语法:

IDictionary<string, string> localizedNames = new Dictionary<string,string>
{
["key1"] = "value1",
["key2"] = "value2",
["key3"] = "value3"
};

关于c# - 通过容器的内联初始化向字典添加值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10998961/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com