3
A
回答
2
System.Collections.Specialized.NameValueCollection可以做到这一点,但它只能将字符串存储为值。
System.Collections.Specialized.NameValueCollection k =
new System.Collections.Specialized.NameValueCollection();
k.Add("B", "Brown");
k.Add("G", "Green");
Console.WriteLine(k[0]); // Writes Brown
Console.WriteLine(k["G"]); // Writes Green
0
您可以通过添加以下属性到您的收藏添加一个索引:
public object this[int index]
{
get { /* return the specified index here */ }
set { /* set the specified index to value here */ }
}
通过输入索引器并按[选项卡] [选项卡],可以在Visual Studio中快速添加此项。
返回类型和索引器类型是可以改变的。您还可以添加多个索引器类型。
1
public object this[int index]
{
get { ... }
set { ... }
}
除了做只是一个整数索引,可以提供任何其他类型的密钥你喜欢
public object this[String key]
{
get { ... }
set { ... }
}
如果你不想定义自己的收藏,从List<T>
只是继承,或者只是使用List<T>
类型的变量。
4
现有的答案已经展示了如何添加自己的索引。
您可能想要查看一些现有的基于密钥的集合,如SortedList<,>
,其行为与Dictionary<,>
类似,但允许使用键和位置索引器。
此外 - 你应该能够继承大部分这种类型的东西 - 例如,从Collection<>
或List<>
继承。请注意,如果您的集合实现IList
/IList<T>
,我不建议如下(我看到偶尔):
public SomeType this[int someId] {...}
的一点是,人们所期待的IList[<T>]
的整数索引是位置。
2
在What is the best data structure in .NET for look-up by string key or numeric index?上有类似的问题。
看一看KeyedCollection:
class IndexableDictionary<TKey, TItem> : KeyedCollection<TKey, TItem>
{ Dictionary<TItem, TKey> keys = new Dictionary<TItem, TKey>();
protected override TKey GetKeyForItem(TItem item) { return keys[item];}
public void Add(TKey key, TItem item)
{ keys[item] = key;
this.Add(item);
}
}
相关问题
- 1. 如何通过索引访问密钥?
- 2. JAXB和列表属性可以通过密钥访问
- 3. 通过AWS CLI传递访问密钥和密钥
- 4. Spring @ @可访问的bean引用密钥
- 5. 多重索引组访问密钥由
- 6. 像列表一样订购,但通过密钥访问?
- 7. 通过密钥访问JavaScript对象
- 8. 可以通过Impala和其他方式访问配置表吗?
- 9. 是否有泛型集合,我可以通过索引器通过字符串键和索引访问元素?
- 10. 通过索引值访问面板中的列表框c#
- 11. 通过Django模板中的索引访问列表
- 12. 通过索引,列表,在python3中的访问类型()函数
- 13. Python:通过引用访问列表值
- 14. 我可以通过数字索引访问关联数组吗?
- 15. 我可以通过foreach访问索引吗?
- 16. 无法为AWSCredentialsProvider设置访问密钥和密钥
- 17. 访问列表的索引是列表
- 18. 通过属性递归访问字典以及索引访问?
- 19. 从Magento获取访问密钥和访问令牌密钥
- 20. Java HashMap:如何通过索引获取密钥和值?
- 21. 不再可能通过SSH密钥访问Bluemix容器?
- 22. GORM访问列表索引
- 23. 是否可以通过前缀获取/搜索Memcached密钥?
- 24. 什么可以访问“应用程序设置密钥值”?
- 25. 通过字符串索引访问列表<MyClass>
- 26. 通过索引/列条目访问和编辑pandas.DataFrame
- 27. 通过服务帐户密钥访问Google表格API
- 28. jQuery的访问对象通过索引
- 29. AWS Educate帐户的访问密钥ID和秘密访问密钥
- 30. 密钥索引搜索存在表
定义指标和重点。发布你想写的语法。 – 2008-11-18 09:56:03