我有一个C#dictionary
,其中我有一个对应NAME
的ID
.
Dictionary<string, List<object>> dict = new Dictionary<string, List<object>>
{
{ "ID", new List<object> { "Id1", "Id2" } },
{ "NAME", new List<object> { "True", "False" } }
};
foreach (var id in dict["ID"])
{
Console.WriteLine(id);
//how to get corresponding "Name". For "Id1" = "True" and for "Id2" = "False"
}
Run Code Online (Sandbox Code Playgroud)
在上面的代码我循环ID
,但如何获得相应的NAME
?
我认为更好的设计是创建一个具有两个属性的类然后迭代.如果您发现自己必须为简单的数据表示同步不同的数据结构,那么我建议您重新考虑设计.
public class MyClass
{
public string Id { get; set; }
public bool Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
然后List<MyClass>
在迭代时按住一个:
foreach (var item in list)
{
// Now access item.Id, item.Name
}
Run Code Online (Sandbox Code Playgroud)
当您拥有某种类型的数据自然键并且您希望通过该键访问项目时,使用词典是很好的.由于通过散列函数访问项目,因此通过密钥访问是O(1)
在列表中进行搜索O(n)
.但是在你的情况下,你在任何情况下迭代所有项目,所以不需要字典并在类中安排数据是一个更好的设计.
关于差异和一些参考:
归档时间: |
|
查看次数: |
90 次 |
最近记录: |