带有字符串和数字的 C# 列表或数组

C# List or Array with String and Number

创建包含字符串和数字的数组或列表的最佳方法是什么?

使用字典可以这样做:

Dictionary < string, int > dict = new Dictionary < string, int > ();

但是 Array 或 List 有更好的方法吗?

我需要它来存储IP地址和对应的端口号。

最佳方式取决于您的用例。但这里有一个简单的方法。

var list = new List<Tuple<string, int>> {
    Tuple.Create("foo", 123),
    Tuple.Create("bar", 234),
};

如果你想要一个相关的 ip 地址和端口的列表,我会为它制作一个专用类型。

struct Address {
    public string Ip;
    public int Port;
}

...

var list = new List<Address>();

由于哈希表是建立在它之上的;如果您要搜索内容以查找特定键,词典 是更快的方法。

var list = new Dictionary<string, int>();

Key/Value 对的列表需要解析每个条目,每个 "KeyValuePair" 也就是说,检查它是否包含特定的键。在添加越来越多的条目时,这将导致略微呈指数级的性能损失。

var list = new List<KeyValuePair<string, int>>();