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

C#使用泛型實(shí)現(xiàn)刪除數(shù)組中重復(fù)元素

 更新時(shí)間:2024年02月23日 08:42:51   作者:wenchm  
這篇文章主要為大家詳細(xì)介紹了C#如何使用泛型實(shí)現(xiàn)刪除數(shù)組中重復(fù)元素,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下

一、涉及到的知識(shí)點(diǎn)

1.List<T>泛型集合

List<T>泛型集合表示可通過(guò)索引訪問(wèn)的對(duì)象的強(qiáng)類(lèi)型列表,提供了用于對(duì)列表進(jìn)行搜索、排序和操作的方法。List<T>泛型集合位于System.Collections.Generic命名空間下。

2.List<T>泛型集合的Add方法

List<T>泛型集合的Add方法用于將對(duì)象添加到List<T>的結(jié)尾處。語(yǔ)法格式如下:

public void Add(T item)

參數(shù)說(shuō)明

item:要添加到List<T>的末尾處的對(duì)象。對(duì)于引用類(lèi)型,該值可以為null。

3.List<T>泛型集合的ToArray方法

List<T>泛型集合的ToArray方法用于將List<T>的元素復(fù)制到新數(shù)組中。語(yǔ)法格式如下:

public virtual void Add(Object key,Object value)

參數(shù)說(shuō)明返回值:一個(gè)數(shù)組,它包含List<T>的元素的副本。

4.string.Join()方法

這種方法簡(jiǎn)潔、適用。用于代替foreach遍歷輸出,沒(méi)治了。

int[] int_arrays = [38, 98, 368, 98, 698, 2998, 368, 5998];
textBox1!.Text = string.Join(", ", int_arrays);

5.Array.Sort(int[] array)方法

該方法對(duì)值類(lèi)型數(shù)組進(jìn)行排序,并修改源數(shù)組。該方法并不生成新的數(shù)組,如果需要生成新數(shù)組,則定義一個(gè)新數(shù)組,拷貝數(shù)組到新數(shù)組,然后對(duì)新數(shù)組進(jìn)行排序。

int[] int_arrays = [38, 98, 368, 98, 698, 2998, 368, 5998];
textBox1!.Text = string.Join(", ", int_arrays);
         
Array.Sort(int_arrays);     //對(duì)值數(shù)組排序
textBox2!.Text = string.Join(", ", int_arrays);
// 使用 Array.Sort() 方法對(duì)數(shù)組進(jìn)行排序
namespace _130_2
{
    public class Program
    {
        public static void Main(string[] args)
        {
            ArgumentNullException.ThrowIfNull(args);
 
            int[] intArray = { 38, 98, 368, 98, 698, 2998, 368, 5998 };
 
            Array.Sort(intArray);
 
            Console.WriteLine("排序后的數(shù)組:");
            foreach (int num in intArray)
            {
                Console.WriteLine(num);
            }
        }
    }
}
//運(yùn)行結(jié)果
/*
排序后的數(shù)組:
38
98
98
368
368
698
2998
5998
 */

6.HashSet<T> 泛型集合

使用泛型集合 HashSet<T> 來(lái)刪除數(shù)組中的重復(fù)數(shù)字。HashSet<T> 集合用于存儲(chǔ)唯一的元素,如果嘗試添加重復(fù)元素,它將自動(dòng)忽略重復(fù)項(xiàng)。

// 使用 HashSet<T> 去除數(shù)組中的重復(fù)數(shù)字
 
namespace _130_1
{
    public class Program
    {
        public static void Main(string[] args)
        {
            ArgumentNullException.ThrowIfNull(args);
 
            int[] numbers = [1, 2, 2, 3, 4, 4, 5, 6, 6, 7, 8, 9];
 
            HashSet<int> uniqueNumbers = [.. numbers];
 
            Console.WriteLine("去除重復(fù)數(shù)字后的數(shù)組:");
            foreach (int number in uniqueNumbers)
            {
                Console.WriteLine(number);
            }
        }
    }
}
//運(yùn)行結(jié)果:
/*
去除重復(fù)數(shù)字后的數(shù)組:
1
2
3
4
5
6
7
8
9
 */

示例首先創(chuàng)建一個(gè)包含重復(fù)數(shù)字的數(shù)組。然后,創(chuàng)建一個(gè) HashSet<int> 集合來(lái)存儲(chǔ)唯一的數(shù)字。接下來(lái),使用 foreach 循環(huán)遍歷原始數(shù)組,并將每個(gè)數(shù)字添加到 HashSet<int> 集合中。由于 HashSet<int> 集合只存儲(chǔ)唯一的元素,重復(fù)的數(shù)字將被自動(dòng)忽略。最后,我們使用另一個(gè) foreach 循環(huán)打印去除重復(fù)數(shù)字后的結(jié)果。

二、實(shí)例

使用泛型去掉了數(shù)組中的重復(fù)數(shù)字,具體實(shí)現(xiàn)時(shí),首先需要對(duì)數(shù)組進(jìn)行排序,排序之后重復(fù)的數(shù)字肯定是相鄰的,這時(shí)只需要比較鄰近的數(shù)字是否相同即可。

1.源碼

// 使用泛型去掉數(shù)組中的重復(fù)數(shù)字
namespace _130
{
    public partial class Form1 : Form
    {
        private Label? label1;
        private Label? label2;
        private Label? label3;
        private static TextBox? textBox1;
        private static TextBox? textBox2;
        private static TextBox? textBox3;
 
        public Form1()
        {
            InitializeComponent();
            StartPosition = FormStartPosition.CenterScreen;
            Load += Form1_Load;
        }
 
        private void Form1_Load(object? sender, EventArgs e)
        {
            // 
            // label1
            // 
            label1 = new Label
            {
                AutoSize = true,
                Location = new Point(12, 16),
                Name = "label1",
                Size = new Size(56, 17),
                TabIndex = 0,
                Text = "源數(shù)組:"
            };
            // 
            // label2
            // 
            label2 = new Label
            {
                AutoSize = true,
                Location = new Point(12, 45),
                Name = "label2",
                Size = new Size(56, 17),
                TabIndex = 1,
                Text = "排序后:"
            };
            // 
            // textBox1
            // 
            textBox1 = new TextBox
            {
                Location = new Point(61, 10),
                Name = "textBox1",
                Size = new Size(240, 23),
                TabIndex = 2
            };
            // 
            // textBox2
            // 
            textBox2 = new TextBox
            {
                Location = new Point(61, 39),
                Name = "textBox2",
                Size = new Size(240, 23),
                TabIndex = 3
            };
            // 
            // label3
            // 
            label3 = new Label
            {
                AutoSize = true,
                Location = new Point(12, 74),
                Name = "label3",
                Size = new Size(56, 17),
                TabIndex = 4,
                Text = "新數(shù)組:"
            };
            // 
            // textBox3
            // 
            textBox3 = new TextBox
            {
                Location = new Point(61, 68),
                Name = "textBox3",
                Size = new Size(240, 23),
                TabIndex = 5
            };
            // 
            // Form1
            // 
            AutoScaleDimensions = new SizeF(7F, 17F);
            AutoScaleMode = AutoScaleMode.Font;
            ClientSize = new Size(314, 98);
            Controls.Add(textBox2);
            Controls.Add(textBox1);
            Controls.Add(label2);
            Controls.Add(label1);
            Controls.Add(textBox3);
            Controls.Add(label3);
            Name = "Form1";
            Text = "使用泛型去掉數(shù)組中的重復(fù)數(shù)字";
            ResumeLayout(false);
            PerformLayout();
 
            MainMethod();
        }
        /// <summary>
        /// 定義一維源數(shù)組
        /// 并對(duì)其排序
        /// </summary>
        static void MainMethod()
        {
            int[] int_arrays = [38, 98, 368, 98, 698, 2998, 368, 5998];
            textBox1!.Text = string.Join(", ", int_arrays);
         
            Array.Sort(int_arrays);                 //對(duì)值數(shù)組排序
            textBox2!.Text = string.Join(", ", int_arrays);
            
            int[] newArrays = RemoveNum(int_arrays);//調(diào)用方法去掉重復(fù)數(shù)字
            textBox3!.Text = string.Join(", ", newArrays);
        }
 
        #region 去掉數(shù)組中的重復(fù)數(shù)字
        /// <summary>
        /// 去掉數(shù)組中的重復(fù)數(shù)字
        /// </summary>
        /// <param name="int_Data">要去除重復(fù)數(shù)字的int數(shù)組</param>
        /// <returns>取出重復(fù)數(shù)字之后的數(shù)組</returns>
        static int[] RemoveNum(int[] int_Data)
        {
            List<int> list_Arrays = [];                     //實(shí)例化泛型集合
            for (int i = 0; i < int_Data.Length - 1; i++)   //循環(huán)訪問(wèn)源數(shù)組元素
            {
                if (int_Data[i] != int_Data[i + 1]) //判斷相鄰的值是否相同
                {
                    list_Arrays.Add(int_Data[i]);   //如果不同,將值添加到泛型集合中
                }
            }
            list_Arrays.Add(int_Data[^1]);          //將數(shù)組的最后一個(gè)元素添加到泛型集合中
            return [.. list_Arrays];                //將泛型集合轉(zhuǎn)換為數(shù)組,并返回
        }
        #endregion
    }
}

本實(shí)例實(shí)現(xiàn)時(shí)主要用到了List<T>泛型集合及其Add方法、ToArray方法。

2.生成效果

到此這篇關(guān)于C#使用泛型實(shí)現(xiàn)刪除數(shù)組中重復(fù)元素的文章就介紹到這了,更多相關(guān)C#刪除數(shù)組重復(fù)元素內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C#字符串使用密鑰進(jìn)行加解密

    C#字符串使用密鑰進(jìn)行加解密

    這篇文章主要為大家詳細(xì)介紹了C#字符串使用密鑰進(jìn)行加解密的代碼,C#字符串加密和解密實(shí)現(xiàn)代碼,感興趣的小伙伴們可以參考一下
    2016-08-08
  • C#流類(lèi)FileStream學(xué)習(xí)使用筆記

    C#流類(lèi)FileStream學(xué)習(xí)使用筆記

    這篇文章主要介紹了C#流類(lèi)FileStream學(xué)習(xí)使用筆記,本文直接給出示例代碼,代碼中每一步都有詳細(xì)注釋,需要的朋友可以參考下
    2015-06-06
  • c#壓縮字符串的方法

    c#壓縮字符串的方法

    這篇文章主要介紹了c#壓縮字符串的方法,文中示例代碼非常詳細(xì),供大家參考和學(xué)習(xí),感興趣的朋友可以了解下
    2020-06-06
  • C# 10個(gè)常用特性匯總

    C# 10個(gè)常用特性匯總

    這篇文章主要介紹了C# 10個(gè)常用特性,文中示例代碼非常詳細(xì),幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • C#進(jìn)度軸控件分享

    C#進(jìn)度軸控件分享

    這里給大家介紹的是使用C#實(shí)現(xiàn)的進(jìn)度軸的方法和示例,非常的實(shí)用,有需要的小伙伴可以參考下。
    2015-06-06
  • C#圖像灰度級(jí)拉伸的方法

    C#圖像灰度級(jí)拉伸的方法

    這篇文章主要介紹了C#圖像灰度級(jí)拉伸的方法,涉及C#灰度操作的相關(guān)技巧,需要的朋友可以參考下
    2015-04-04
  • C#獲取HTML文本的第一張圖片與截取內(nèi)容摘要示例代碼

    C#獲取HTML文本的第一張圖片與截取內(nèi)容摘要示例代碼

    在日常web開(kāi)發(fā)的時(shí)候,經(jīng)常會(huì)遇到需要獲取保存的HTML文本中的第一張圖片,并且截取內(nèi)容摘要的效果,例如織夢(mèng)的后臺(tái)添加完詳細(xì)內(nèi)容后就是自動(dòng)讀取內(nèi)容摘要,并保存第一張圖片為縮略圖,那么這篇文章跟大家分享下利用C#如何實(shí)現(xiàn),感興趣的朋友們下面來(lái)一起看看吧。
    2016-10-10
  • 如何使用C#設(shè)置Excel單元格和工作表的背景

    如何使用C#設(shè)置Excel單元格和工作表的背景

    在Excel文檔的設(shè)計(jì)與美化中,單元格和工作表的背景設(shè)置不僅能提升文檔的可視化效果,還能增強(qiáng)數(shù)據(jù)呈現(xiàn)的邏輯性,下面我們就來(lái)看看如何使用C#設(shè)置Excel單元格和工作表背景吧
    2025-05-05
  • C# OpenCvSharp實(shí)現(xiàn)通過(guò)特征點(diǎn)匹配圖片

    C# OpenCvSharp實(shí)現(xiàn)通過(guò)特征點(diǎn)匹配圖片

    這篇文章主要為大家詳細(xì)介紹了C#如何結(jié)合OpenCVSharp4實(shí)現(xiàn)通過(guò)特征點(diǎn)匹配圖片,文中的示例代碼簡(jiǎn)潔易懂,具有一定的學(xué)習(xí)價(jià)值,需要的小伙伴可以參考下
    2023-11-11
  • DevExpress實(shí)現(xiàn)自定義TreeListNode的Tooltip的方法

    DevExpress實(shí)現(xiàn)自定義TreeListNode的Tooltip的方法

    這篇文章主要介紹了DevExpress實(shí)現(xiàn)自定義TreeListNode的Tooltip的方法,需要的朋友可以參考下
    2014-08-08

最新評(píng)論

大安市| 延津县| 城固县| 嘉定区| 稻城县| 周口市| 钟山县| 聂荣县| 宜城市| 新蔡县| 温宿县| 凤翔县| 宜宾县| 佛山市| 岗巴县| 丰城市| 曲靖市| 保定市| 格尔木市| 休宁县| 池州市| 裕民县| 聂荣县| 禹州市| 榆中县| 周宁县| 乐亭县| 固始县| 农安县| 浦城县| 湾仔区| 德兴市| 葫芦岛市| 镇平县| 孟村| 安达市| 理塘县| 广宗县| 吴旗县| 若羌县| 习水县|