скопировать данные DataReader в список - PullRequest
0 голосов
/ 28 июня 2019

Я пытаюсь загрузить свой пользовательский объект с данными, поступающими из Data Reader..Как я могу это сделать

Я могу сменить datateader на DATATable, если его лучше использовать

Считыватель данных

ID     Description Type
1      Test1       1
2      Test2       2
3      Test3       1
4      Test4       3  
5      Test5       3

мой последний объект должен выглядеть примерно так

type: 1
    id:1
    desc:Test1  
    id:3
    desc:Test3


type: 2
    id:2
    desc:Test2


type: 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 ]

1 голос
/ 28 июня 2019

Не проверено, но вы можете попробовать группировать что-то похожее:

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();
0 голосов
/ 28 июня 2019

Вы можете создать переменную Dictionary<string, Val> types, которая содержит для каждого типа свой объект Val.Затем, когда вы читаете ваши данные, вы можете добавить их в список valItems их типа следующим образом.

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

Конечно, вы должны разобраться со случаем, когда необходимо создать словарную запись.

...