最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#自定義集合初始化器

 更新時(shí)間:2022年07月31日 16:09:40   作者:Darren?Ji  
這篇文章介紹了C#自定義集合初始化器的方法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

對(duì)int類型集合初始化,這樣寫:

        static void Main(string[] args)
        {
            var list = new List<int> {0, 1};
            foreach (var item in list)
            {
                Console.WriteLine(item);
            }
            Console.ReadKey();
        }

對(duì)鍵值對(duì)集合初始化,這樣寫:

        static void Main(string[] args)
        {
            var dic = new Dictionary<string, string>
            {
                {"location", "qingdao"},
                {"street","lingchuang"}
            };

            foreach (var item in dic)
            {
                Console.WriteLine("{0}:{1}", item.Key, item.Value);
            }
            Console.ReadKey();
        }

編譯器是如何"讀懂"集合初始化器?

編譯器根據(jù)慣例來理解集合初始化器,即約定:如果一個(gè)類型實(shí)現(xiàn)IEnumerable<T>接口,并且提供了Add(object obj)方法,該類型可以使用集合初始化器。

假設(shè),我們想通過一個(gè)集合初始化器來定義一個(gè)模特的集合,以胸圍、腰圍、臀圍作為集合初始化器的參數(shù):

var list = new MoTes{
    {79, 60, 89},
    {82, 63, 90}
};

{79, 60, 89}就像int類型一樣,是一個(gè)數(shù)據(jù)結(jié)構(gòu),把它定義成結(jié)構(gòu)類型:

    public struct SanWei
    {
        public readonly double _Xiong;
        public readonly double _Yao;
        public readonly double _Tun;

        //構(gòu)造函數(shù)的參數(shù)類型、順序和數(shù)量決定了集合初始化器的參數(shù)類型、順序和數(shù)量
        public SanWei(double xiong, double yao, double tun)
        {
            _Xiong = xiong;
            _Yao = yao;
            _Tun = tun;
        }
    }

而想讓MoTes類可以使用集合初始化器,需要滿足2個(gè)條件:

  • 1、實(shí)現(xiàn)IEnumerable<SanWei>接口
  • 2、提供Add(double xiong, double yao, double tun)方法
    public class MoTes : IEnumerable<SanWei>
    {
        private readonly List<SanWei> _motes;

        public MoTes()
        {
            _motes = new List<SanWei>();
        }

        public void Add(double xiong, double yao, double tun)
        {
            _motes.Add(new SanWei(xiong, yao, tun));
        }
        public IEnumerator<SanWei> GetEnumerator()
        {
            return _motes.GetEnumerator();
        }

        IEnumerator IEnumerable.GetEnumerator()
        {
            return GetEnumerator();
        }
    }

在客戶端:

        static void Main(string[] args)
        {
            var list = new MoTes()
            {
                {79, 60, 89},
                {82, 63, 90}
            };
            foreach (var item in list)
            {
                Console.WriteLine("胸圍:{0},腰圍:{1},臀圍:{2}",item._Xiong, item._Yao, item._Tun);
            }
            Console.ReadKey();
        }

到此這篇關(guān)于C#自定義集合初始化器的文章就介紹到這了。希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • WPF中的ValidationRule實(shí)現(xiàn)參數(shù)綁定解決方案

    WPF中的ValidationRule實(shí)現(xiàn)參數(shù)綁定解決方案

    在WPF中,默認(rèn)情況下,DataContext是通過可視化樹來傳遞的,父元素的DataContext會(huì)自動(dòng)傳遞給其子元素,以便子元素可以訪問父元素的數(shù)據(jù)對(duì)象,這篇文章主要介紹了WPF中的ValidationRule實(shí)現(xiàn)參數(shù)綁定解決方案,需要的朋友可以參考下
    2023-08-08
  • C# string轉(zhuǎn)unicode字符的實(shí)現(xiàn)

    C# string轉(zhuǎn)unicode字符的實(shí)現(xiàn)

    本文主要介紹了C# string轉(zhuǎn)unicode字符的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-02-02
  • C# Marshal類基本概念和入門實(shí)例講解

    C# Marshal類基本概念和入門實(shí)例講解

    這篇文章主要介紹了C# Marshal類基本概念和入門實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。
    2023-02-02
  • C#程序加密工具.Net?Reactor詳細(xì)教程

    C#程序加密工具.Net?Reactor詳細(xì)教程

    .Net?Reacto加密工具是一款強(qiáng)大的?.NET?代碼保護(hù)和授權(quán)管理系統(tǒng),安全可靠、簡單易用,主要用來幫助開發(fā)人員保護(hù)他們的?.NET?軟件產(chǎn)品,本文給大家詳細(xì)介紹C#程序加密工具.Net?Reactor教程,感興趣的朋友一起看看吧
    2022-02-02
  • C#通過JObject解析json對(duì)象

    C#通過JObject解析json對(duì)象

    這篇文章介紹了C#通過JObject解析json對(duì)象的方法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-07-07
  • 使用C#的正則表達(dá)式驗(yàn)證中文字符(實(shí)例代碼)

    使用C#的正則表達(dá)式驗(yàn)證中文字符(實(shí)例代碼)

    本文通過實(shí)例代碼給大家介紹了使用C#的正則表達(dá)式驗(yàn)證中文字符的方法,需要的的朋友參考下吧
    2017-07-07
  • C#實(shí)現(xiàn)簡單的汽車租賃系統(tǒng)

    C#實(shí)現(xiàn)簡單的汽車租賃系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C#實(shí)現(xiàn)汽車租賃系統(tǒng)的具體實(shí)現(xiàn)代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-05-05
  • C#中比較兩個(gè)List是否相等的常見方法

    C#中比較兩個(gè)List是否相等的常見方法

    在?C#?里,比較兩個(gè)?List?是否相等,需要考慮多個(gè)方面,例如列表中的元素順序、元素本身是否相等,下面介紹幾種常見的比較方法,需要的朋友可以參考下
    2025-04-04
  • C#實(shí)現(xiàn)讀取多條數(shù)據(jù)記錄并導(dǎo)出到Word

    C#實(shí)現(xiàn)讀取多條數(shù)據(jù)記錄并導(dǎo)出到Word

    這篇文章主要為大家詳細(xì)介紹了C#如何實(shí)現(xiàn)讀取多條數(shù)據(jù)記錄并導(dǎo)出到Word,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-03-03
  • 利用C#實(shí)現(xiàn)批量圖片格式轉(zhuǎn)換功能

    利用C#實(shí)現(xiàn)批量圖片格式轉(zhuǎn)換功能

    這篇文章主要為大家詳細(xì)介紹了如何利用C#實(shí)現(xiàn)批量圖片格式轉(zhuǎn)換功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2022-12-12

最新評(píng)論

宾川县| 安西县| 克什克腾旗| 建水县| 舞阳县| 昌江| 岚皋县| 渑池县| 淮南市| 兴和县| 苏尼特左旗| 扶沟县| 时尚| 兴文县| 安溪县| 元阳县| 白水县| 莒南县| 丰镇市| 寿宁县| 外汇| 大化| 清水河县| 霍邱县| 玛曲县| 江山市| 德安县| 深圳市| 米易县| 凤台县| 科尔| 易门县| 瑞丽市| 清新县| 和硕县| 博乐市| 弋阳县| 西丰县| 杭州市| 嘉黎县| 苏州市|