亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將 DataReader 數據復制到列表中

將 DataReader 數據復制到列表中

C#
千巷貓影 2023-05-14 16:33:06
我正在嘗試使用來自 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();


查看完整回答
反對 回復 2023-05-14
?
三國紛爭

TA貢獻1804條經驗 獲得超7個贊

您可以創建一個變量Dictionary<string, Val> types,為每種類型保存其Val對象。然后,當您讀取數據時,您可以將它們添加到其類型的 valItems 列表中,如下所示。

types[Convert.ToString(reader["type"])].valItems.Add(new ValItems() {id = ..., desc = ...});

當然,您必須處理需要創建字典條目的情況。


查看完整回答
反對 回復 2023-05-14
  • 2 回答
  • 0 關注
  • 137 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號