Претворите Ц# ЛИНК у речник

Pretvorite C Link U Recnik



У Ц# ЛИНК, креирање речника из Систем.Цоллецтионс.Генериц.ИЕнумерабле<Т> могуће је коришћењем методе ТоДицтионари(). Овај метод креира речник са <ТКеи,ТВалуе> из датог <ИЕнумерабле<Т>. Тхе Систем.АргументНуллЕкцептион се баца ако је извор података, кеиСелецтор или елементСелецтор нулл. Такође, ако кеиСелецтор производи дупликате кључева за два елемента, Систем.АргументЕкцептион је бачен. У овом водичу ћемо разговарати о томе како да направите речник од извора података листе преоптерећењем две методе.

Синтакса:

1. Ако желите да креирате речник према одређеним функцијама селектора кључа и селектора елемената из датог извора података, преоптеретите следећи метод:









Параметри:



    1. извор : Извор може бити ИЕнумерабле (листа) у којој је речник креиран из овог извора.
    2. кеиСелецтор : Ово је функција која се користи за добијање кључа од сваког елемента.
    3. елементСелецтор: Ово је функција која се користи за добијање елемента.
    4. ТСоурце : Ово је параметар типа који одређује тип извора података.
    5. ТКеи: Ово је параметар типа који одређује тип кључа.
    6. ТЕлемент : Ово је параметар типа који одређује тип елемента.

2. Ако желите да направите речник према наведеној функцији бирача кључа из датог извора података, преоптеретите следећи метод:





Параметри:



    1. извор : Извор може бити ИЕнумерабле (листа) у којој је речник креиран из овог извора.
    2. кеиСелецтор : Ово је функција која се користи за добијање кључа од сваког елемента.
    3. Извор: Ово се односи на тип извора података.
    4. ТКеи : Одређује тип кључа.

Пример 1: Наведени бирач тастера и функција бирача елемента

Направите листу са типом „Налог“ која садржи четири атрибута (Ацц_ИД, Ацц_Наме, Индустрија, Приход) са пет записа.

1. Направите речник са претходне листе са кључем као Ацц_ИД и вредношћу као Ацц_Наме.
2. Направите речник са претходне листе са кључем као Ацц_Наме и Валуе ас Ревенуе.

Користећи Систем ;
Користећи Систем.Линк ;
Користећи Систем.Цоллецтионс.Генериц ;

класа Информације о налогу
{
јавности статичне празнина Главни ( )
{
// Креирај листу типа - налог.
Списак детаља = Нова Листа ( ) ;
// Додај 5 записа на листу.
детаљима . Додати ( Нова Рачун { Ацц_ИД = 1 , Ацц_Наме = 'Линукс' , Индустрија = 'Образовање' , Приход = 2500 } ) ;
детаљима . Додати ( Нова Рачун { Ацц_ИД = 2 , Ацц_Наме = 'пајтон' , Индустрија = 'Центар за обуку' , Приход = 10000 } ) ;
детаљима . Додати ( Нова Рачун { Ацц_ИД = 3 , Ацц_Наме = 'Јава' , Индустрија = 'Образовање' , Приход = 500 } ) ;
детаљима . Додати ( Нова Рачун { Ацц_ИД = 4 , Ацц_Наме = '.НЕТ' , Индустрија = 'Обука' , Приход = 2080 } ) ;
детаљима . Додати ( Нова Рачун { Ацц_ИД = 5 , Ацц_Наме = 'Орацле' , Индустрија = 'посао' , Приход = 2090 } ) ;

// Креирајте речник са горње листе са кључем као Ацц_ИД и вредношћу као Ацц_Наме
Конзола . ВритеЛине ( ' ----Кључ као Ацц_ИД и вредност као Ацц_Наме----' ) ;
Речник аццоунтс_дицт1 = детаљима . ТоДицтионари ( ј => ј . Ацц_ИД , ј => ј . Ацц_Наме ) ;

за сваки ( КеиВалуеПаир и ин аццоунтс_дицт1 )
{
Конзола . ВритеЛине ( 'ИД налога :' + и . Кључ + 'Име налога:' + и . Валуе ) ;
}

// Направите речник са горње листе са кључем као Ацц_Наме и вредношћу као приходом
Конзола . ВритеЛине ( ' ----Кључ као име_ацца и вредност као приход----' ) ;
Речник аццоунтс_дицт2 = детаљима . ТоДицтионари ( л => л . Ацц_Наме , л => л . Приход ) ;

за сваки ( КеиВалуеПаир к ин аццоунтс_дицт2 )
{
Конзола . ВритеЛине ( 'Име налога:' + к . Кључ + „Приход од налога:“ + к . Валуе ) ;
}

}
}

// Креирај класу под називом - Налог са четири атрибута
јавности класа Рачун
{
јавности инт Ацц_ИД { добити ; комплет ; }
јавности низ Ацц_Наме { добити ; комплет ; }
јавности низ Индустрија { добити ; комплет ; }
јавности инт Приход { добити ; комплет ; }
}

Излаз:

Објашњење:

1. Креирајте класу под називом „Аццоунт“ са четири атрибута.

2. У главној класи креирајте листу типа „Налог“ и у њу убаците пет записа.

3. Направите речник са претходне листе са кључем као Ацц_ИД и вредношћу као Ацц_Наме. Овде наводимо ТКеи као инт и ТЕлемент као стринг. Унутар методе ТоДицтионари() преносимо Ацц_ИД у селектор кључева и Ацц_Наме у елементСелецтор. Коначно, користимо петљу „фореацх“ да бисмо поновили речник и вратили кључеве и вредности користећи својства кључа и вредности.

4. Направите речник са претходне листе са кључем као Ацц_Наме и вредношћу као Приход. Овде наводимо ТКеи као стринг, а ТЕлемент као инт. Унутар методе ТоДицтионари() преносимо Ацц_Наме у селектор кључева и Ревенуе у елементСелецтор. Коначно, користимо петљу „фореацх“ да бисмо поновили речник и вратили кључеве и вредности користећи својства кључа и вредности.

Пример 2: Наведени бирач тастера

Користите претходни код и направите речник са претходне листе са кључем као Ацц_ИД.

Користећи Систем ;
Користећи Систем.Линк ;
Користећи Систем.Цоллецтионс.Генериц ;

класа Информације о налогу
{
јавности статичне празнина Главни ( )
{
// Креирај листу типа - налог.
Списак детаља = Нова Листа ( ) ;
// Додај 5 записа на листу.
детаљима . Додати ( Нова Рачун { Ацц_ИД = 1 , Ацц_Наме = 'Линукс' , Индустрија = 'Образовање' , Приход = 2500 } ) ;
детаљима . Додати ( Нова Рачун { Ацц_ИД = 2 , Ацц_Наме = 'пајтон' , Индустрија = 'Центар за обуку' , Приход = 10000 } ) ;
детаљима . Додати ( Нова Рачун { Ацц_ИД = 3 , Ацц_Наме = 'Јава' , Индустрија = 'Образовање' , Приход = 500 } ) ;
детаљима . Додати ( Нова Рачун { Ацц_ИД = 4 , Ацц_Наме = '.НЕТ' , Индустрија = 'Обука' , Приход = 2080 } ) ;
детаљима . Додати ( Нова Рачун { Ацц_ИД = 5 , Ацц_Наме = 'Орацле' , Индустрија = 'посао' , Приход = 2090 } ) ;

// Креирајте речник са горње листе са кључем као Ацц_ИД.
Речник аццоунтс_дицт = детаљима . ТоДицтионари ( ј => ј . Ацц_ИД ) ;
за сваки ( КеиВалуеПаир и ин аццоунтс_дицт )
{
Конзола . ВритеЛине ( 'Кључ:' + и . Кључ + '-->  Назив-налог :' + и . Валуе . Ацц_Наме
+ „Рачун-индустрија:“ + и . Валуе . Индустрија
+ „Приход од налога:“ + и . Валуе . Приход ) ;
}

}
}

// Креирај класу под називом - Налог са четири атрибута
јавности класа Рачун
{
јавности инт Ацц_ИД { добити ; комплет ; }
јавности низ Ацц_Наме { добити ; комплет ; }
јавности низ Индустрија { добити ; комплет ; }
јавности инт Приход { добити ; комплет ; }
}

Излаз:

Објашњење:

Овде креирамо речник са кључем као Ацц_ИД. Ово делује као кључ за сваки запис у речнику који смо направили са листе. Након тога користимо петљу „фореацх“ да бисмо добили кључеве и вредности (са атрибутима) користећи својства кључа и вредности.

Пример 3: Дупликати кључева – АргументЕкцептион

Направите листу са два записа и покушајте да је конвертујете у речник са Ацц_ИД као кључем.

Користећи Систем ;
Користећи Систем.Линк ;
Користећи Систем.Цоллецтионс.Генериц ;

класа Информације о налогу
{
јавности статичне празнина Главни ( )
{
// Креирај листу типа - налог.
Списак детаља = Нова Листа ( ) ;
// Додај 2 записа на листу.
детаљима . Додати ( Нова Рачун { Ацц_ИД = 1 , Ацц_Наме = 'Линукс' , Индустрија = 'Образовање' , Приход = 2500 } ) ;
детаљима . Додати ( Нова Рачун { Ацц_ИД = 1 , Ацц_Наме = 'пајтон' , Индустрија = 'Центар за обуку' , Приход = 10000 } ) ;

// Покушајте да направите речник са горње листе са кључем као Ацц_ИД.
Речник аццоунтс_дицт = детаљима . ТоДицтионари ( ј => ј . Ацц_ИД ) ;

}
}

// Креирај класу под називом - Налог са четири атрибута
јавности класа Рачун
{
јавности инт Ацц_ИД { добити ; комплет ; }
јавности низ Ацц_Наме { добити ; комплет ; }
јавности низ Индустрија { добити ; комплет ; }
јавности инт Приход { добити ; комплет ; }
}

Изузетак:

Необрађени изузетак који је Систем.АргументЕкцептион се покреће пошто је кључ дупликат (1) у оба Ацц_ИД-а.

Пример 4: Нулл Соурце – АргументНуллЕкцептион

Направите листу са типом „Налог“ и доделите јој нулл. Покушајте да направите речник са претходне листе са кључем као Ацц_ИД.

Користећи Систем ;
Користећи Систем.Линк ;
Користећи Систем.Цоллецтионс.Генериц ;

класа Информације о налогу
{
јавности статичне празнина Главни ( )
{
// Креирајте листу типа - налог и доделите му нулл.
Списак детаља = нула ;

// Покушајте да направите речник са горње листе са кључем као Ацц_ИД.
Речник аццоунтс_дицт = детаљима . ТоДицтионари ( ј => ј . Ацц_ИД ) ;

}
}

// Креирај класу под називом - Налог са четири атрибута
јавности класа Рачун
{
јавности инт Ацц_ИД { добити ; комплет ; }
јавности низ Ацц_Наме { добити ; комплет ; }
јавности низ Индустрија { добити ; комплет ; }
јавности инт Приход { добити ; комплет ; }
}

Изузетак:

Необрађени изузетак који је Систем.АргументНуллЕкцептион се покреће пошто је листа нулта.

Закључак

Научили смо како да креирамо речник из ИЕнумерабле (овде је то листа) користећи методу ТоДицтионари() у Ц# ЛИНК. Овај метод се може преоптеретити на два начина. Разговарали смо о обе методе са примерима. Такође, научили смо два случаја изузетка који се јављају овом методом када је извор података/кеиСелецтор/елементСелецтор нула и кључеви су дупли.