C# - Tuple和Dictionary和List之间有什么区别

Isw*_*war -1 c# dictionary tuples list

这个问题已在这里得到答案


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

 Dictionary<int, string> dic = new Dictionary<int, string>();
 Tuple<int, string> tuple = new Tuple<int, string>();
 List<int> list = new List<int>();
Run Code Online (Sandbox Code Playgroud)

这三者有什么区别?

Zoh*_*led 11

首先,AFAIK,没有列表带有两个类型参数 - 所以你的List可以是a List<int>List<string>(或者a SortedList<int,string>,但那是一个不同的类).

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

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

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