創作內容

1 GP

Unity C# form 查詢關鍵字 功能說明

作者:蝦米coco│2020-05-07 02:24:32│巴幣:2│人氣:362
from和in:這個舉例來說好了
int [ ] x ={3,4,5,6,7,9}
var numb = from num_x //每個陣列的資料 in x //抓取的陣列或List
where numb < 5//判定有小於5的生成一個true的新陣列select numb;//回傳新陣列

where
功能:主要判斷有沒有達成限制條件,並抓出每個陣列的資料比對並取代numb
select
功能:傳回呼叫的值或新陣列,可以是單純取代numb或numb+10這種或new
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.Linq;

public  class Exercisc : MonoBehaviour
{
       void Start()
    {
//沒有添加版
        int [] x = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
        var num = from num_x in x
                   select num_x + 1;
        foreach (var int_x in num)
        {
            Debug.Log(int_x);//2,3,4,5,6,7,8,9,10
        }
//有where版
        int[] x = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
        var num = from num_x in x
                  where num_x > 5
                  select num_x;
        foreach (var int_x in num)
        {
            Debug.Log(int_x);//6,7,8,9
        }
    }
}
//select用new{}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.Linq;

public  class Exercisc : MonoBehaviour
{

    public class Food
    {
        public int Number_Food { set; get;}
        public string Food_Name { set; get;}

    }
       void Start()
    {
        List<Food> Food_A = new List<Food>
        { new Food {Number_Food=1,Food_Name="麵包" },
         new Food {Number_Food=2,Food_Name="漢堡" },
          new Food {Number_Food=3,Food_Name="蛋餅" },
           new Food {Number_Food=4,Food_Name="饅頭" },
            new Food {Number_Food=5,Food_Name="包子" },
        };
        var Food_All = from F_A in Food_A
                  where F_A.Number_Food>2
                  select new {F_A.Number_Food,F_A.Food_Name };
        foreach (var F_all in Food_All)
        {
            Debug.Log(F_all);//{ Number_Food = 3, Food_Name = 蛋餅 }{Number_Food=4,Food_Name="饅頭" }{Number_Food=5,Food_Name="包子" }
            Debug.Log(F_all.Number_Food);//3 4 5
            Debug.Log(F_all.Food_Name);//蛋餅 饅頭 包子
        }
    }
}

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
join
1.只能判定等不等於,不能判定大於、小於所以才只能打equals
from D_A in Drink_A//設定抓取的內部資料
join Pack_A//(結果資料) in//(外部資料) Food_A on//(和內部資料比) D_A.Number_Drink equals//(等於) Pack_A.Number_Food
//外部資料是 一個class  ,而內部資料是一個class中的一個class
on
來指定聯結條件(只能是內部來源)
equals
就是等於判斷式int、string....

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.Linq;

public class Exercisc : MonoBehaviour
{

    public class Food
    {
        public int Number_Food { set; get; }
        public string Food_Name { set; get; }

    }
    public class Drink
    {
        public int Number_Drink { set; get; }
        public string Drink_Name { set; get; }
    }

    void Start()
    {
        List<Food> Food_A = new List<Food>
        { new Food {Number_Food=1,Food_Name="B麵包" },
         new Food {Number_Food=2,Food_Name="A漢堡" },
          new Food {Number_Food=3,Food_Name="C蛋餅" },
           new Food {Number_Food=4,Food_Name="D饅頭" },
            new Food {Number_Food=5,Food_Name="E包子" },
        };
        List<Drink> Drink_A = new List<Drink>
        { new Drink {Number_Drink=1,Drink_Name="B可樂" },
         new Drink {Number_Drink=2,Drink_Name="A雪碧" },
          new Drink {Number_Drink=3,Drink_Name="C紅茶" },
           new Drink {Number_Drink=4,Drink_Name="D咖啡" },
            new Drink {Number_Drink=5,Drink_Name="E奶茶" },
        };
        var Pack_All = from D_A in Drink_A//抓取飲料資料
                       join Pack_A in Food_A//抓取食物資料  on D_A.Number_Drink equals Pack_A.Number_Food//這裡指的是以Food_A為基底的Number_Food
                       select new { Drink = D_A.Number_Drink ,Food=Pack_A.Food_Name};//只有填上D_A.Number_Drink和Pack_A.Food_Name所以只有2個變數被讀出來
                      
        foreach (var P_all in Pack_All)
        {
            Debug.Log(P_all.Food +"  "+ P_all.Drink);
        }
//
B麵包  1
A漢堡  2
C蛋餅  3
D饅頭  4
E包子  5
    }
}

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
group:通常和by一起使用
功用:用來抓取from要分類的值、陣列、陣列中的陣列

into:使用在group、join、select(查詢關鍵字中 當容器用)
1.當使用into必須繼續進行查詢,最後以 select 陳述式或另一個 group 子句結束

by:使用在group後面
功用:用來寫辦定分組限制用的(分類是分成有通過限制的true一類和false一類或者要看分類方法來決定分成幾類)

let:使用在form之後
功用:建立一個以自己條件篩選後建立的變數群
適合用在把文字串變成陣列
//group範例
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.Linq;

public class Exercisc : MonoBehaviour
{

    public class Food
    {
        public int Number_Food { set; get; }
        public string Food_Name { set; get; }

    }
    void Start()
    {
        List<Food> Food_A = new List<Food>
        { new Food {Number_Food=1,Food_Name="麵包" },
         new Food {Number_Food=2,Food_Name="漢堡" },
          new Food {Number_Food=3,Food_Name="蛋餅" },
           new Food {Number_Food=4,Food_Name="饅頭" },
            new Food {Number_Food=5,Food_Name="包子" },
        };
//一版的
        var Food_All = from F_A in Food_A
                       group F_A by F_A.Number_Food > 4;        
        foreach (var F_all in Food_All)//這裡要用2次foreach第一次抓取資料
        {
            Debug.Log(F_all.Key);//F_all.Key可以看到分成甚麼類別
            foreach (var F_all_bool in F_all)//第二次抓取分類的資料
            {
                Debug.Log(F_all_bool.Number_Food);
                Debug.Log(F_all_bool.Food_Name);
//false
1 麵包
2 漢堡
3 蛋餅
4 饅頭
true
5 包子
            }
        }
//有into和where的版本
var Food_All = from F_A in Food_A
                       group F_A by F_A.Number_Food > 4 into F_true
                       where(F_true.Key==true)
                       select F_true;
                      
        foreach (var F_all in Food_All)
        {
            Debug.Log(F_all.Key);
            foreach (var F_all_bool in F_all)
            {
                Debug.Log(F_all_bool.Number_Food);
                Debug.Log(F_all_bool.Food_Name);
            }
        }
//true
5 包子
    }
}

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
orderby它的預設是ascending,所以如果要從小到大不用在打ascending
功用:排列陣列順序用的,是從小到大的排列(如A~Z 1~100這種)
ovderby x(主要排列法),y(次要排列法)//當主要方法判斷不出來時調用次要方法排列

descending一般使用在orderby後面
功用:排列陣列順序用的,是從大到小的排列(如Z~A 100~1這種)

ascending一般使用在orderby後面一般被設為預設可以不用打只要打descending
功用:排列陣列順序用的,是從小到大的排列(如A~Z 1~100這種)

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.Linq;

public class Exercisc : MonoBehaviour
{

    public class Food
    {
        public int Number_Food { set; get; }
        public string Food_Name { set; get; }

    }
    void Start()
    {
        List<Food> Food_A = new List<Food>
        { new Food {Number_Food=1,Food_Name="B麵包" },
         new Food {Number_Food=1,Food_Name="A漢堡" },
          new Food {Number_Food=3,Food_Name="C蛋餅" },
           new Food {Number_Food=4,Food_Name="D饅頭" },
            new Food {Number_Food=5,Food_Name="E包子" },
        };

//使用orderby(預設就是ascending)
        var Food_All = from F_A in Food_A
                       orderby F_A.Number_Food //主要因素沒有打方法預設檢查第一個字 , F_A.Food_Name //次要因素沒有打方法預設檢查第一個字
                       select F_A;
                      
        foreach (var F_all in Food_All)
        {
            Debug.Log(F_all.Number_Food +"  "+F_all.Food_Name);

//結果
1 A漢堡
1 B麵包
3 C蛋餅
4 D饅頭
5 E包子

//如果使用descending
var Food_All = from F_A in Food_A
                       orderby F_A.Number_Food  descending //(主要因素沒有打方法預設檢查第一個字) , F_A.Food_Name  descending //(次要因素沒有打方法預設檢查第一個字)
                       select F_A;
                      
        foreach (var F_all in Food_All)
        {
            Debug.Log(F_all.Number_Food +"  "+F_all.Food_Name);

//結果
5 E包子
4 D饅頭
3 C蛋餅
1 B麵包
1 A漢堡
        }
    }
}

引用網址:https://home.gamer.com.tw/TrackBack.php?sn=4773986
All rights reserved. 版權所有,保留一切權利

相關創作

留言共 0 篇留言

我要留言提醒:您尚未登入,請先登入再留言

1喜歡★pk123634 可決定是否刪除您的留言,請勿發表違反站規文字。

前一篇:Unity C# vir... 後一篇:像素畫練習 樹...

追蹤私訊切換新版閱覽

作品資料夾

Lobster0627全體巴友
大家可以多多來我的YT頻道看看哦(*´∀`)~♥https://www.youtube.com/@lobstersandwich看更多我要大聲說8小時前


face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】