Добавлять элементы Диктионари C#

я учусь C# и у меня есть сомнение, в руководителе, за которым я следую, делается следующее

if (record.HasRows){
Dictionary<string, string> row;
while (record.Read()){
row = new Dictionary<string, string>();
for (int f = 0; f < record.FieldCount, f++){
row.Add(record.GetName(f), record.Getvalue(f);
    }
  }
}

Мое сомнение состоит в том, что я не понимаю, из-за которого instancio row внутри цикла While, это не способствовало бы тому, чтобы он был создан неоднократно пока рекорд продолжает читаться? и в которое я понимаю только, требуется instanciar единственный раз, чтобы мочь добавлять N элементы, не каждый раз, когда хотелось добавлять что-то. Не было бы должно быть instanciado в условном if вместо внутри While?

0
задан 07.11.2019, 18:31
2 ответа

Если, asГ - он, не deberГ - в instanciar снова row в каждый iteraciГіn. DeberГ - в instanciar единственный раз и добавлять Ваши элементы в каждый iteraciГіn.

if (record.HasRows){
    Dictionary<string, string> row = new Dictionary<string, string>();
    while (record.Read()){
        for (int f = 0; f < record.FieldCount, f++){
            row.[record.GetName(f)]  =  record.Getvalue(f);
        }
    }
}

Со своей стороны рекомендуемый санкционировать хорошо Add, так как, если ключ уже существует в словаре, он будет давать тебе ошибку (Поэтому utilicГ© =)

0
ответ дан 01.12.2019, 12:21

Этот код не правилен

  • сначала ты не нуждаешься в том, чтобы спросить из-за HasRows, так как while не введет информацию в компьютер, а смоги posicionar курсор

  • , если ты определяешь словарь внутри if область, будет только этим, с чем ты это не сможешь использовать снаружи

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

, оно было бы чем-то как это

var Items = new List<Dictionary<string, string>>();

while (record.Read())
{
    var row = new Dictionary<string, string>();

    for (int f = 0; f < record.FieldCount, f++)
    {
        row.Add(record.GetName(f), record.Getvalue(f));
    }

    Items.Add(row);
}

Серьезный список каждый реестр и составом row были бы колонны, представленный в словаре

0
ответ дан 01.12.2019, 12:21