C#中是否有类似以下<key, string, string>
的内容,我可以使用密钥快速访问第二和第三个字段。
答案 0 :(得分:6)
由于您已表明您未使用.NET 4,因此您必须定义一个类或结构来保存您感兴趣的两个字符串:
class Foo
{
public StringOne { get; set; }
public StringTwo { get; set; }
}
然后使用Dictionary<string, Foo>
,如下所示:
var dict = new Dictionary<string, Foo>();
dict["key"] = new Foo() {
StringOne = "Hello",
StringTwo = "World"
};
不要忘记给这个类及其属性一些有意义的名字。
答案 1 :(得分:3)
为什么不写这个
class StringPair {
public string Item1 { get; set; }
public string Item2 { get; set; }
}
Dictionary<TKey, StringPair>
答案 2 :(得分:1)
这对你有用吗?
class Table<TKey, TValues>
{
Dictionary<TKey, int> lookup;
List<TValues[]> array;
public Table()
{
this.lookup = new Dictionary<TKey, int>();
this.array = new List<TValues[]>();
}
public void Add(TKey key, params TValues[] values)
{
array.Add(values);
lookup.Add(key, array.Count - 1);
}
public TValues[] this[TKey key]
{
get { return array[lookup[key]]; }
set { array[lookup[key]] = value; }
}
}
class Program
{
static void Main(string[] args)
{
Table<int, string> table = new Table<int, string>();
table.Add(10001, "Joe", "Curly", "Mo");
table.Add(10002, "Alpha", "Beta");
table.Add(10101, "UX-300", "UX-201", "HX-100b", "UT-910");
string[] parts = table[10101];
// returns "UX-300", "UX-201", "HX-100b" and "UT-910".
}
}