C# 继承列表<;T>;,希望通过字符串ID值而不是索引检索项目

C# 继承列表<;T>;,希望通过字符串ID值而不是索引检索项目,c#,C#,我有一门课叫提问。我有另一个类叫做Questions,它只是创建集合列表的继承 如何使其能够通过其ID属性而不是像这样基于整数的索引检索问题对象 Question q = Questions["someidhere"]; 基本上,我正在寻找与SqlDataReader对象相同的功能,您可以根据字段名或索引检索字段。根本不使用列表;使用 var dict=newdictionary(); dict.Add(“someidhere”,新问题(…); // ... var q=dict[“somei

我有一门课叫提问。我有另一个类叫做Questions,它只是创建集合列表的继承

如何使其能够通过其ID属性而不是像这样基于整数的索引检索问题对象

Question q = Questions["someidhere"];
基本上,我正在寻找与SqlDataReader对象相同的功能,您可以根据字段名或索引检索字段。

根本不使用
列表
;使用

var dict=newdictionary();
dict.Add(“someidhere”,新问题(…);
// ...
var q=dict[“someidhere”];
根本不要使用
列表
;使用

var dict=newdictionary();
dict.Add(“someidhere”,新问题(…);
// ...
var q=dict[“someidhere”];
使用。 这将完成您需要它完成的任务。

使用。
这将完成您需要它完成的任务。

您可以使用它。OrderedDictionary表示可由键或索引访问的键/值对的集合。

可用于此目的。OrderedDictionary表示键或索引可以访问的键/值对的集合。

Oh,duh。我昨晚应该睡得更好。这可能对我的大脑有帮助。谢谢,哈哈!哦,嗯。我昨晚应该睡得更好。这可能对我的大脑有帮助。谢谢,哈哈!除了建议使用字典的答案外,我还建议使用组合而不是继承,因为您的类有一个字典,如果您希望支持该功能,您可以向类中添加索引器(然后它将委托给字典)。除了建议使用字典的答案外,我建议使用组合而不是继承,因为您的类有一个字典,如果您希望支持该功能,您可以向类中添加一个索引器(然后将其委托给字典)。我要注意的是,此解决方案不符合“基于字段名或索引”检索的规定要求显然,这个要求的索引部分并不重要,因为@stringpoet已经接受了答案:-)@phoog:是的,我考虑过了,但从他描述问题的方式来看,我认为这不是一个真正的问题我要指出的是,这个解决方案不符合“基于字段名或索引”检索的规定要求。显然,该要求的索引部分并不重要,因为@StringPoter已经接受了答案:-)@phoog:是的,我考虑过了,但从他描述问题的方式来看,我认为这实际上不是一个“真正的”需求,而是一个可感知的需求。
var dict = new Dictionary<string, Question>();
dict.Add("someidhere", new Question(...));
// ...
var q = dict["someidhere"];