如何在实例化时将值插入 C# 字典?
Posted
技术标签:
【中文标题】如何在实例化时将值插入 C# 字典?【英文标题】:How to insert values into C# Dictionary on instantiation? 【发布时间】:2010-11-05 14:13:39 【问题描述】:有谁知道在创建 C# 字典时是否可以将值插入到 C# 字典中?我可以,但不想,做
dict.Add(int, "string")
对于每个项目,如果有更有效的东西,比如:
Dictionary<int, string>()(0, "string"),(1,"string2"),(2,"string3");
【问题讨论】:
Can I use a collection initializer for Dictionary<TKey, TValue> entries? 的可能重复项 【参考方案1】:一般不建议这样做,但在不确定的危机时期可以使用
Dictionary<string, object> jsonMock = new Dictionary<string, object>() "object a", objA , "object b", objB ;
// example of unserializing
ClassForObjectA anotherObjA = null;
if(jsonMock.Contains("object a"))
anotherObjA = (ClassForObjA)jsonMock["object a"];
【讨论】:
【参考方案2】:您知道,从 C# 6 开始,您现在可以按如下方式对其进行初始化
var students = new Dictionary<int, StudentName>()
[111] = new StudentName FirstName="Sachin", LastName="Karnik", ID=211,
[112] = new StudentName FirstName="Dina", LastName="Salimzianova", ID=317,
[113] = new StudentName FirstName="Andy", LastName="Ruth", ID=198
;
更干净:)
【讨论】:
【参考方案3】:希望它能完美运行。
Dictionary<string, double> D =new Dictionary<string, double>();
D.Add("String", 17.00);
【讨论】:
嗨,欢迎来到 SO!最初问这个问题的人专门说他们不想做.Add(int, "string")
向字典添加值的方法。抱歉,但这并不能回答问题。【参考方案4】:
这里有一整页关于如何做到这一点:
http://msdn.microsoft.com/en-us/library/bb531208.aspx
例子:
在以下代码示例中,
Dictionary<TKey, TValue>
是 使用StudentName
类型的实例初始化:
var students = new Dictionary<int, StudentName>()
111, new StudentName FirstName="Sachin", LastName="Karnik", ID=211,
112, new StudentName FirstName="Dina", LastName="Salimzianova", ID=317,
113, new StudentName FirstName="Andy", LastName="Ruth", ID=198
;
【讨论】:
这仅适用于 .NET 3.5 编译器...请记住这一点。 @kd7iwp - 没问题,本网站的部分功能是可以将替代搜索词路由到有用的地方。 是的,这几乎是微软给定的。多年来,他们一直致力于向后兼容。【参考方案5】:您还可以使用 Lambda 表达式插入来自任何其他 IEnumerable 对象的任何键值对。键和值可以是任何你想要的类型。
Dictionary<int, string> newDictionary =
SomeList.ToDictionary(k => k.ID, v => v.Name);
我发现这要简单得多,因为您在 .NET 中的任何地方都使用了 IEnumerable 对象
希望对你有帮助!!!
有点。
【讨论】:
【参考方案6】:你快到了:
var dict = new Dictionary<int, string>()
0, "string", 1,"string2",2,"string3";
【讨论】:
【参考方案7】:您可以像这样实例化一个字典并向其中添加项目:
var dictionary = new Dictionary<int, string>
0, "string",
1, "string2",
2, "string3"
;
【讨论】:
【参考方案8】:Dictionary<int, string> dictionary = new Dictionary<int, string>
0, "string" ,
1, "string2" ,
2, "string3" ;
【讨论】:
以上是关于如何在实例化时将值插入 C# 字典?的主要内容,如果未能解决你的问题,请参考以下文章
Mongoose - 如何防止 mongoose 在模型实例化时创建 _id
异常抛出:实体数据模型对象实例化时 C# Windows 服务中的“System.IO.FileNotFoundException”