Синтакса:
1. Ако желите да креирате речник према одређеним функцијама селектора кључа и селектора елемената из датог извора података, преоптеретите следећи метод:
Параметри:
-
- извор : Извор може бити ИЕнумерабле (листа) у којој је речник креиран из овог извора.
- кеиСелецтор : Ово је функција која се користи за добијање кључа од сваког елемента.
- елементСелецтор: Ово је функција која се користи за добијање елемента.
- ТСоурце : Ово је параметар типа који одређује тип извора података.
- ТКеи: Ово је параметар типа који одређује тип кључа.
- ТЕлемент : Ово је параметар типа који одређује тип елемента.
2. Ако желите да направите речник према наведеној функцији бирача кључа из датог извора података, преоптеретите следећи метод:
Параметри:
-
- извор : Извор може бити ИЕнумерабле (листа) у којој је речник креиран из овог извора.
- кеиСелецтор : Ово је функција која се користи за добијање кључа од сваког елемента.
- Извор: Ово се односи на тип извора података.
- ТКеи : Одређује тип кључа.
Пример 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: Нулл Соурце – АргументНуллЕкцептион
Направите листу са типом „Налог“ и доделите јој нулл. Покушајте да направите речник са претходне листе са кључем као Ацц_ИД.
Користећи Систем ;Користећи Систем.Линк ;
Користећи Систем.Цоллецтионс.Генериц ;
класа Информације о налогу
{
јавности статичне празнина Главни ( )
{
// Креирајте листу типа - налог и доделите му нулл.
Списак детаља = нула ;
// Покушајте да направите речник са горње листе са кључем као Ацц_ИД.
Речник аццоунтс_дицт = детаљима . ТоДицтионари ( ј => ј . Ацц_ИД ) ;
}
}
// Креирај класу под називом - Налог са четири атрибута
јавности класа Рачун
{
јавности инт Ацц_ИД { добити ; комплет ; }
јавности низ Ацц_Наме { добити ; комплет ; }
јавности низ Индустрија { добити ; комплет ; }
јавности инт Приход { добити ; комплет ; }
}
Изузетак:
Необрађени изузетак који је Систем.АргументНуллЕкцептион се покреће пошто је листа нулта.
Закључак
Научили смо како да креирамо речник из ИЕнумерабле (овде је то листа) користећи методу ТоДицтионари() у Ц# ЛИНК. Овај метод се може преоптеретити на два начина. Разговарали смо о обе методе са примерима. Такође, научили смо два случаја изузетка који се јављају овом методом када је извор података/кеиСелецтор/елементСелецтор нула и кључеви су дупли.