C# - 元组和字典和列表有什么区别

标签 c# list dictionary tuples

此问题已有答案 here

我试图在我的应用程序中使用元组。所以我想区分元组、字典和列表。

 Dictionary<int, string> dic = new Dictionary<int, string>();
 Tuple<int, string> tuple = new Tuple<int, string>();
 List<int> list = new List<int>();

这三者有什么区别?

最佳答案

首先,AFAIK,没有需要两个类型参数的列表 - 所以你的列表可以是 List<int>List<string> (或 SortedList<int,string> ,但这是一个不同的类)。

A Tuple<T1, T2> 保存两个值 - 在这种情况下,一个 int 和一个字符串。
您可以使用元组将项目(可能是不同类型的)绑定(bind)在一起。
这在许多情况下可能很有用,例如,您想从方法中返回多个值。
我个人讨厌Item1 , Item2属性名称,所以我可能会在我的代码中使用围绕元组的包装类。

A Dictionary<TKey, TValue> KeyValuePair<TKey, TValue>的合集.
字典将键映射到值,例如,您可以拥有一个人的字典,并且每个人都有他们的 SSN 作为键。

A List<T> T的合集.
您可以使用索引获取单个项目,Find方法,或者简单的 linq (因为它实现了 IEnumerable<T> )

关于C# - 元组和字典和列表有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45294491/

相关文章:

c# - Entity Framework 6 - 调用 SaveChanges() 时未设置

c# - 关键字 'add' 附近的语法不正确

python - 从嵌套字典中删除元组键;避免运行时和类型错误

python - 此嵌套循环的列表理解语法是否正确?

c# PropertyGrid 限制对 List<T> 项的编辑

Python字典格式

python - 如何从 Python 中的嵌套字典打印多个值

c# - DatagridView 不显示错误图标或错误文本?

c# - 以 LINQ 方式初始化交错数组

c++ - 链表的相等运算符 C++