Объединить список столбцов и список данных в список C # - PullRequest
0 голосов
/ 23 января 2019

У меня возникла проблема с объединением двух списков в один список с использованием LINQ и C#. Мой сценарий состоит в том, что в List one я получил число columns, а в second list я получаю data список соответствующих столбцов. Сходство между двумя списками заключается в их indexes.

В настоящее время я использую Список словаря для выполнения этой работы, но мне нужны данные как model list.

ROW Data

Column Data

Вот мой код

/* Loop over the result set and create a dictionary with column name for key and data for value */
List<Dictionary<String, String>> scanLists = new List<Dictionary<String, String>>();

if (resResp.ResultSet.Rows.Count > 1)
{
    /*First cloumn always contains column names so we have to remove those*/
    //resResp.ResultSet.Rows.Remove(resResp.ResultSet.Rows[0]);
    foreach (Row row in resResp.ResultSet.Rows)
    {
        Dictionary<String, String> scanData = new Dictionary<String, String>();
        for (var i = 0; i < resResp.ResultSet.ResultSetMetadata.ColumnInfo.Count; i++)
        {
            scanData.Add(resResp.ResultSet.ResultSetMetadata.ColumnInfo[i].Name, row.Data[i].VarCharValue);
        }
        scanLists.Add(scanData);
    }
}

Но я хочу, чтобы результат в

List<ScanData> scanList = new  List<ScanData>();

Спасибо ВСЕМ

1 Ответ

0 голосов
/ 23 января 2019

Попробуйте доморощенное объектно-реляционное сопоставление:

var scanObjects = new List<MyCustomObject>();

foreach (Row row in resResp.ResultSet.Rows)
{
    var myObject = new MyCustomObject();
    //Dictionary<String, String> scanData = new Dictionary<String, String>();
    for (var i = 0; i < resResp.ResultSet.ResultSetMetadata.ColumnInfo.Count; i++)
    {
        //scanData.Add(resResp.ResultSet.ResultSetMetadata.ColumnInfo[i].Name, row.Data[i].VarCharValue);

        switch( resResp.ResultSet.ResultSetMetadata.ColumnInfo[i].Name )
        {
            case "ExampleId":
                myObject.ExampleId = row.Data[i].VarCharValue;
                break;
            case "ExampleValue":
                myObject.ExampleValue = row.Data[i].VarCharValue;
                break;
            default:
                // Unrecognised/unused column
                break;
        }
    }
    //scanLists.Add(scanData);
    scanObjects.Add(myObject);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...