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