我正在通过SQL查询检索五列。在检索到的列中,我有一个 RecordID 列,它应该作为字典的键。
我指的是在StackOverflow上发布的解决方案:C# Multi-Value Dictionary,但根据我的情况,我无法有效使用它。
我想存储查询的所有行,但RecordID列也应该作为字典元素的键。我想要这样的东西:
Dictionary<RecordID, Entire columns of the current row for this RecordID>
我认为另一种选择是使用数组,例如:
Dictionary<key,string[]>
但我想用任何超快的方式。
答案 0 :(得分:1)
使用Lookup
- 您对数据没有多说,但您可能需要一些简单的内容:
var lookup = list.ToLookup(x => x.RecordID);
当然,ToLookup
有重载可以让你做其他事情。
答案 1 :(得分:0)
哦,天哪,你需要一个专门的班级来保持价值观。由于列来自db表,因此字段数是固定的。因此,您可以拥有一个具有固定字段的类,而不是一个动态增长的集合。最后使用KeyedCollection<TKey, TItem>
结构来保存记录集合。在KeyedCollection<TKey, TItem>
中,TKey
部分嵌入TItem
,在您的情况下为RecordId
。
class Record
{
public int Id { get; set; }
//rest of the fields
}
您的结构应该看起来像KeyedCollection<int, Record>
。它也保留了插入顺序。您可以使用RecordId
通过索引器查询集合,就像字典一样。