亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C# > 正文

C#中Dictionary類使用實例

2020-01-24 01:42:21
字體:
來源:轉載
供稿:網友

在C#中,使用Dictionary類來管理由鍵值對組成的集合,這類集合稱為字典。

字典最大的特點就是能夠根據鍵來快速查找集合中的值。

下面是一個使用字典的小實例,希望通過這個小實例,能讓大家對字典操作有一個初步的了解。下面是完整代碼。

//************************************************************ // // Dictionary示例代碼 // // Author:三五月兒 //  // Date:2014/09/14 // // //************************************************************ using System;using System.Collections.Generic;using System.Linq;namespace DictionaryExp{  class Program  {    static void Main(string[] args)    {      //所有班級所有學生成績報告單      Dictionary<int, List<ScoreReport>> scoreDictionary = new Dictionary<int, List<ScoreReport>>();      //將1班所有學生成績加入字典      scoreDictionary.Add(1,        new List<ScoreReport>()        {          new ScoreReport(){Name="三五月兒",ChineseScore=100,MathScore=100,EnglishScore=100},          new ScoreReport(){Name="張三",ChineseScore=80,MathScore=78,EnglishScore=91},          new ScoreReport(){Name="李四",ChineseScore=90,MathScore=87,EnglishScore=88}        });      //將2班所有學生的成績加入字典      scoreDictionary.Add(2,        new List<ScoreReport>()        {          new ScoreReport(){Name="王五",ChineseScore=78,MathScore=88,EnglishScore=98},          new ScoreReport(){Name="丁六",ChineseScore=77,MathScore=99,EnglishScore=91},          new ScoreReport(){Name="魏源",ChineseScore=45,MathScore=66,EnglishScore=99}        });      //將3班所有學生的成績加入字典      scoreDictionary.Add(3,        new List<ScoreReport>()        {          new ScoreReport(){Name="周鵬",ChineseScore=99,MathScore=89,EnglishScore=78},          new ScoreReport(){Name="毛錢",ChineseScore=66,MathScore=98,EnglishScore=91},          new ScoreReport(){Name="皮蛋",ChineseScore=87,MathScore=69,EnglishScore=88}        });       //所有班級學生成績統計報告單      Dictionary<int, ScoreStatistics> scoreStatisticsDictionary = new Dictionary<int, ScoreStatistics>();      scoreStatisticsDictionary.Add(1, new ScoreStatistics());      scoreStatisticsDictionary.Add(2, new ScoreStatistics());      scoreStatisticsDictionary.Add(3, new ScoreStatistics());       //獲取班級Key的集合      Dictionary<int, List<ScoreReport>>.KeyCollection keyCollection = scoreDictionary.Keys;      //通過班級Key遍歷班級學生成績      foreach (var key in keyCollection)      {        //班級成績統計報告單中包含本班級時才繼續        if (scoreStatisticsDictionary.ContainsKey(key))        {          //當前班級所有學生的詳細成績報告單          List<ScoreReport> scoreList = new List<ScoreReport>();          scoreDictionary.TryGetValue(key, out scoreList);                    if (scoreList != null && scoreList.Count > 0)          {//當前班級所有學生的詳細成績報告單中存在數據            int count = scoreList.Count;//當前班級學生人數            //生成當前班級學生成績的統計報告單            ScoreStatistics scoreStatistics = new ScoreStatistics();            scoreStatisticsDictionary.TryGetValue(key, out scoreStatistics);            scoreStatistics.ClassId = key;            scoreStatistics.TotalChineseScore = scoreList.Sum(it => it.ChineseScore);            scoreStatistics.TotalMathScore = scoreList.Sum(it => it.MathScore);            scoreStatistics.TotalEnglishScore = scoreList.Sum(it => it.EnglishScore);            scoreStatistics.AverageChineseScore = scoreStatistics.TotalChineseScore / count;            scoreStatistics.AverageMathScore = scoreStatistics.TotalMathScore / count;            scoreStatistics.AverageEnglishScore = scoreStatistics.TotalEnglishScore / count;          }        }      }       foreach (var s in scoreStatisticsDictionary)      {        Console.WriteLine("ClassId = {0},TotalChineseScore = {1},TotalMathScore = {2},TotalEnglishScore = {3},AverageChineseScore = {4},AverageMathScore = {5},AverageEnglishScore = {6}",          s.Value.ClassId, s.Value.TotalChineseScore, s.Value.TotalMathScore, s.Value.TotalEnglishScore, s.Value.AverageChineseScore, s.Value.AverageMathScore, s.Value.AverageEnglishScore);        Console.WriteLine("-------------------------------------------------");      }    }  }  class ScoreReport  {    public string Name { get; set; }    public int ChineseScore { get; set; }    public int MathScore { get; set; }    public int EnglishScore { get; set; }  }   class ScoreStatistics  {    public int ClassId { get; set; }    public int TotalChineseScore { get; set; }    public int TotalMathScore { get; set; }    public int TotalEnglishScore { get; set; }    public int AverageChineseScore { get; set; }    public int AverageMathScore { get; set; }    public int AverageEnglishScore { get; set; }  }}

實例中需要定義兩個類:
ScoreReport類表示單個學生的成績報告單,而ScoreStatistics類表示整個班級的成績統計報告單,統計信息包含班級各科成績的總分和平均分。

在程序的Main方法中:

首先,實例化字典對象,其中:

Dictionary<int, List<ScoreReport>>類型的字典scoreDictionary用來保存所有班級所有學生的詳細成績報告單,Key為班級Id,Value為List<ScoreReport>類型的集合,該集合保存班級所有學生的成績報告單。

Dictionary<int, ScoreStatistics>類型的字典scoreStatisticsDictionary用來保存所有班級的成績統計報告單,Key同樣為班級Id,Value為班級的成績統計報告單,使用ScoreStatistics類型的對象保存。

接著,向字典scoreDictionary與scoreStatisticsDictionary中分別加入三個班級的學生詳細成績報告單及班級成績統計報告單,此時scoreStatisticsDictionary中加入的班級成績統計報告單并不包含真實的統計信息,真實的統計信息需要在后面的計算過程中寫入。

最后,遍歷scoreDictionary字典,依次取出各個班級所有學生的成績信息并生成班級成績的統計信息寫入scoreDictionary字典并輸出,最終的運行效果如下圖所示:

圖1 程序運行效果圖

在我們的實例中使用到了Dictionary類的以下方法:

1、Add方法

使用Add方法將Key-Value對加入字典。

2、ContainsKey方法

使用ContainsKey方法可以確認字典中是否包含指定Key的鍵值對,若存在,返回true,否則返回false。

3、TryGetValue方法

使用TryGetValue方法獲取指定Key對應的Value。

另外,實例中還使用到了Dictionary類的Keys屬性,該屬性返回字典中所有Key的集合。

好了,就到這里了。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91久久久久久久一区二区| 久久久精品999| 国产美女主播一区| 国产精品流白浆视频| 国产精品免费观看在线| 欧美一级高清免费| 久久男人av资源网站| 成人精品一区二区三区| 91精品在线看| 国产精品69精品一区二区三区| 国产精自产拍久久久久久蜜| 国产主播在线一区| 亚洲四色影视在线观看| 亚洲bt天天射| 国产日韩视频在线观看| 日韩精品在线观看一区二区| 国产区亚洲区欧美区| 久久精品国产一区二区电影| 亚洲精品视频免费在线观看| 欧美中在线观看| 欧美最猛性xxxxx免费| 亚洲免费高清视频| 日韩在线观看av| 亚洲午夜色婷婷在线| 久久6免费高清热精品| 欧美午夜激情小视频| 欧美日韩中文字幕日韩欧美| 日韩欧美一区视频| 国产亚洲精品美女久久久| 国产精品香蕉在线观看| 精品一区二区三区三区| 日韩大陆毛片av| 91精品国产高清自在线看超| 日本一欧美一欧美一亚洲视频| 九九热精品视频| 狠狠躁夜夜躁久久躁别揉| 国产成人综合av| 国产97在线|日韩| 中文字幕精品一区久久久久| 亚洲欧美一区二区三区四区| 欧美性视频在线| 免费91在线视频| 久久久人成影片一区二区三区观看| 免费91在线视频| 欧美精品九九久久| 热久久免费国产视频| 国产精品一区二区三区在线播放| 日韩精品极品在线观看播放免费视频| 久久99久久亚洲国产| 国内精品久久久久伊人av| 亚洲bt欧美bt日本bt| 亚洲国产一区二区三区在线观看| 国产欧美久久久久久| 精品久久久av| 欧美一级在线播放| 欧美精品一区三区| 久久免费视频在线观看| 福利一区福利二区微拍刺激| 国产精品久久久久久av| 久久久这里只有精品视频| 精品国产户外野外| 国产亚洲精品高潮| 欧美丝袜美女中出在线| 国产精品第一第二| 亚洲欧美日韩国产中文专区| 福利二区91精品bt7086| 亚洲一区二区中文| 色999日韩欧美国产| 欧美网站在线观看| 亚洲热线99精品视频| 国产亚洲欧洲在线| 欧美大片免费看| 国产精品久久久久久av| 91亚洲国产成人精品性色| 北条麻妃一区二区在线观看| 97涩涩爰在线观看亚洲| 欧美日韩免费一区| 亚洲毛茸茸少妇高潮呻吟| 992tv在线成人免费观看| 日韩一区二区三区xxxx| 国产精品久久久久不卡| 国产精品国产亚洲伊人久久| 亚洲欧美中文日韩v在线观看| 尤物tv国产一区| 国产亚洲精品综合一区91| 久久色精品视频| 97av在线视频| 国产在线999| 亚洲人成电影网站色xx| 亚洲精品国精品久久99热| 欧美中在线观看| 国产成人精品一区二区在线| 一区二区欧美日韩视频| 成人国产精品久久久| 精品久久久久久中文字幕一区奶水| 国模私拍视频一区| www国产91| 欧美日本在线视频中文字字幕| 日韩激情av在线免费观看| 久久亚洲成人精品| 久久综合久久八八| 亚洲午夜女主播在线直播| 最新中文字幕亚洲| 国产日韩精品综合网站| 亚洲а∨天堂久久精品9966| 亚洲精品免费在线视频| 九九热精品视频在线播放| 亚洲人成五月天| 国产欧美日韩视频| 亚洲精品mp4| 精品国产91久久久久久老师| 一本大道香蕉久在线播放29| 国产第一区电影| 国产免费观看久久黄| 韩剧1988在线观看免费完整版| 亚洲国产精品久久91精品| 色悠久久久久综合先锋影音下载| 欧美极品美女视频网站在线观看免费| 亚洲天堂男人的天堂| 欧美精品久久久久久久免费观看| 亚洲综合中文字幕在线| 亚洲欧美中文日韩在线v日本| 神马久久久久久| 久久成年人视频| 欧美日韩高清在线观看| 亚洲女成人图区| 日韩av在线影院| 亚洲最大中文字幕| 欧美日韩一区二区在线| 狠狠色狠狠色综合日日小说| 久热99视频在线观看| 91久久久久久久一区二区| 国产成人精品久久二区二区91| 欧美午夜性色大片在线观看| 日韩av在线天堂网| 色樱桃影院亚洲精品影院| 欧美日韩免费观看中文| www高清在线视频日韩欧美| 国产精品嫩草影院久久久| 国产精品视频地址| 国产欧美va欧美va香蕉在| 欧美性感美女h网站在线观看免费| 久久久久免费视频| 精品一区二区三区三区| 日韩少妇与小伙激情| 日韩欧美在线一区| 全亚洲最色的网站在线观看| 国产精品亚洲欧美导航| 成人动漫网站在线观看| 国产精品夜间视频香蕉| 国产亚洲综合久久| 日韩精品视频在线观看网址| 午夜欧美大片免费观看| 伦伦影院午夜日韩欧美限制| 91久久久久久国产精品| 精品伊人久久97| 这里只有视频精品| 成人免费视频网址| 成人伊人精品色xxxx视频| 亚洲女同精品视频| 久久久中文字幕| 亚洲国产欧美一区二区三区同亚洲| 精品久久久999| 91国产中文字幕|