我正在嘗試使用來自 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 關注
- 137 瀏覽
添加回答
舉報
0/150
提交
取消