我正在尝试使用来自 Data Reader 的数据加载我的自定义对象。我怎样才能做到这一点如果更好用,我可以将数据读取器更改为 DATATable读者资料ID Description Type1 Test1 12 Test2 23 Test3 14 Test4 3 5 Test5 3我的最终对象应该是这个样子type: 1 id:1 desc:Test1 id:3 desc:Test3type: 2 id:2 desc:Test2type: 3 id:4 desc:Test4 id:5 desc:Test5界面public class Val{ public string type { get; set; } public List<valItems> valItems{ get; set; }}public class valItems{ public string id { get; set; } public string desc { get; set; }}功能(我被困在这里)它需要按类型分组,见上面的最终结果)ReadData(){//some code if (reader.HasRows) { while(reader.Read()) { dropdown.Add(new Dropdown { Type = Convert.ToString(reader["type"]), valItems= }), }); } }}
2 回答
森栏
TA贡献1810条经验 获得超5个赞
未经测试,但您可以尝试使用类似的方法进行分组:
List<Val> result = reader.Cast<IDataRecord>().GroupBy(r => r["type"]?.ToString(),
r => new valItems { id = r["ID"]?.ToString(),
desc = r["Description"]?.ToString() })
.Select(g => new Val { type = g.Key, valItems = g.ToList()).ToList();
三国纷争
TA贡献1804条经验 获得超7个赞
您可以创建一个变量Dictionary<string, Val> types
,为每种类型保存其Val
对象。然后,当您读取数据时,您可以将它们添加到其类型的 valItems 列表中,如下所示。
types[Convert.ToString(reader["type"])].valItems.Add(new ValItems() {id = ..., desc = ...});
当然,您必须处理需要创建字典条目的情况。
- 2 回答
- 0 关注
- 103 浏览
添加回答
举报
0/150
提交
取消