mrb*_*lah 6 c# collections dictionary
所以我循环遍历一些对象并初始化Dictionary>对象.
首先,我检查密钥是否存在,如果存在,我将添加到列表中
如果没有,我将创建一个新密钥和新列表
这是正确的逻辑吗?
我将不得不这样做:
new List<int>();
Run Code Online (Sandbox Code Playgroud)
我第一次插入项目了吗?
即:
if(myDic.ContainsKey(car.ID))
{
myDic[car.ID].Add(car.MfgID);
}
else
{
myDic.Add(car.ID, new List<int>);
myDic[car.ID].Add(car.MfgID);
}
Run Code Online (Sandbox Code Playgroud)
Meh*_*ari 23
你的方法很好.它有点低效,因为它需要两个字典查找(一个用于Contains和一个用于将项添加到列表中).您可以使用Dictionary.TryGetValue方法更有效地执行此操作:
List<int> list;
if (!myDic.TryGetValue(car.ID, out list))
myDic.Add(car.ID, list = new List<int>());
list.Add(car.MfgId);
Run Code Online (Sandbox Code Playgroud)
填充列表并一次性将其添加到字典中更有效(当然,如果可能的话).在C#3.0中,有一个称为集合初始化程序的功能,如果在编译时已知项目,则可以轻松填充列表:
var list = new List<int> { 1, 9, 8, 9, 1, 8, 1, 2 };
Run Code Online (Sandbox Code Playgroud)
您也可以考虑使用类似的东西将键映射到多个值.
| 归档时间: |
|
| 查看次数: |
18332 次 |
| 最近记录: |