Unity 查找泛型List中的相同與不同數據


Unity查找泛型集合中的不同數據


本文提供全流程,中文翻譯。

Chinar 堅持將簡單的生活方式,帶給世人!

(擁有更好的閱讀體驗 —— 高分辨率用戶請根據需求調整網頁縮放比例)


Chinar —— 心分享、心創新!

助力快速完成 Unity 服務器的購買、配置、以及網站的搭建

為新手節省寶貴的時間,避免采坑!


Chinar 教程效果:
這里寫圖片描述



全文高清圖片,點擊即可放大觀看 (很多人竟然不知道)


1

Too tired to write tomorrow —— 太累了,明天寫


比較簡單的方式是運用 LinQ 語法來快速的完成查找,並返回一個新的 List

以下方式查找的,只適用於找值類型的數據
舉個栗子黑白88

List<int> A = new List<int> { 1, 2, 3, 5 };
List<int> B = new List<int> { 1, 2, 3, 4 };

List<int> Result = A.Union(B).ToList<int>();  //剔除重復項
List<int> Result1 = A.Concat(B).ToList<int>(); //保留重復項

2

Quote List —— 引用泛型


查找引用類型的泛型列表時,需要用以下函數來完成查找

Student ,學生類中,有 2 個參數 名稱和分數
舉個栗子黑白88

/// <summary>
/// 學生類
/// </summary>
public class Student
{
    public string name; //名稱
    public int    num;  //分數
}
    private void Start()
    {
        List<Student> A = new List<Student>();
        List<Student> B = new List<Student>();
        /* * A、B完成賦值后.... */

        //var exp1 = student1.Where(a => student2.Any(t => a.name.Contains(t.name))).ToList();
        //使用Exists同樣可以實現 字面上應該更好理解,而且效率要高些
        var exp1 = A.Where(a => B.Exists(t => a.name.Contains(t.name)) && B.Exists(t => a.num == t.num)).ToList();
        print("--查找student1和student2總同時存在的數據--");
        foreach (var student in exp1)
        {
            print(student.name);
        }

        //var exp2 = student1.Where(a => student2.All(t => !a.name.Contains(t.name))).ToList(); 
        //使用Exists同樣可以實現 字面上應該更好理解,而且效率要高些
        var exp2 = A.Where(a => !B.Exists(t => a.name.Contains(t.name)) && !B.Exists(t => a.num == t.num)).ToList();
        print("--查找student1集合中存在,而student2不存在的數據--");
        foreach (var student in exp2)
        {
            print(student.name);
        }
    }

3

Quote List —— 引用泛型


查找引用類型的泛型列表時,需要用以下函數來完成查找

Student ,學生類中,有 2 個參數 名稱和分數
舉個栗子黑白88

/// <summary>
/// 學生類
/// </summary>
public class Student
{
    public string name; //名稱
    public int    num;  //分數
}
    private void Start()
    {
        List<Student> A = new List<Student>();
        List<Student> B = new List<Student>();
        /* * A、B完成賦值后.... */

        //var exp1 = student1.Where(a => student2.Any(t => a.name.Contains(t.name))).ToList();
        //使用Exists同樣可以實現 字面上應該更好理解,而且效率要高些
        var exp1 = A.Where(a => B.Exists(t => a.name.Contains(t.name)) && B.Exists(t => a.num == t.num)).ToList();
        print("--查找student1和student2總同時存在的數據--");
        foreach (var student in exp1)
        {
            print(student.name);
        }

        //var exp2 = student1.Where(a => student2.All(t => !a.name.Contains(t.name))).ToList(); 
        //使用Exists同樣可以實現 字面上應該更好理解,而且效率要高些
        var exp2 = A.Where(a => !B.Exists(t => a.name.Contains(t.name)) && !B.Exists(t => a.num == t.num)).ToList();
        print("--查找student1集合中存在,而student2不存在的數據--");
        foreach (var student in exp2)
        {
            print(student.name);
        }
    }

支持

May Be —— 搞開發,總有一天要做的事!


擁有自己的服務器,無需再找攻略!

Chinar 提供一站式教程,閉眼式創建!

為新手節省寶貴時間,避免采坑!


先點擊領取 —— 阿里全產品優惠券 (享受最低優惠)


1 —— 雲服務器超全購買流程 (新手必備!)

2 —— 阿里ECS雲服務器自定義配置 - 購買教程(新手必備!)

3—— Windows 服務器配置、運行、建站一條龍 !

4 —— Linux 服務器配置、運行、建站一條龍 !





技術交流群:806091680 ! Chinar 歡迎你的加入


END

本博客為非營利性個人原創,除部分有明確署名的作品外,所刊登的所有作品的著作權均為本人所擁有,本人保留所有法定權利。違者必究

對於需要復制、轉載、鏈接和傳播博客文章或內容的,請及時和本博主進行聯系,留言,Email: ichinar@icloud.com

對於經本博主明確授權和許可使用文章及內容的,使用時請注明文章或內容出處並注明網址


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM