C# linq語句學習


using System;
using System.Linq;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            int[] arr = { 1, 2, 3, 4, 5, 6 };
            var a = from num in arr
                    where num % 2 == 0
                    select num;
            foreach (var i in a)
            {
                Console.WriteLine(i);
            }
            Console.ReadKey();
            var b = arr.Where(x => x % 2 == 0).OrderBy(n=>n);

            foreach (var i in b)
            {
                Console.WriteLine(i);
            }
            Console.ReadKey();
        }
    }
}

使用LINQ查詢.NET對象

using System;
using System.Data;
using System.Collections.Generic;
using System.Linq;
namespace ConsoleApp2
{
    class Program
    {
        static void Main(string[] args)
        {
            List<Student> list = new List<Student>()
            {
                new Student() { Name="張三豐", sex="", Age=108 },
                new Student() { Name="李三豐", sex="", Age=108 },
                new Student() { Name="李三豐", sex="", Age=108 }
            };
            var query = from item in list
                        where item.Name.StartsWith("") && item.sex == ""
                        select item;
            foreach(var item in query)
            {
                Console.WriteLine(item.Name);
            }
            Console.ReadKey();

        }
    }
}

 查詢語句用用查詢方法代替: 

var query = list.Where(item => item.Name.StartsWith("") && item.sex == "");

 

查詢類型是ArrayList的是需要在變量前增加類型的定義:

using System;
using System.Data;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
namespace ConsoleApp2
{
    class Program
    {
        static void Main(string[] args)
        {
            ArrayList list = new ArrayList()
            {
                new Student() { Name="張三豐", sex="", Age=108 },
                new Student() { Name="李三豐", sex="", Age=108 },
                new Student() { Name="李三豐", sex="", Age=108 }
            };
             var query = from Student item in list where item.Name.StartsWith("") && item.sex == "" select item;
            foreach (Student item in query)
            {
                Console.WriteLine(item.Name);
            }
            Console.ReadKey();

        }
    }
}

 

用索引器篩選:

             List<Student> list = new List<Student>(){
                     new Student(){ Name="張三豐", Sex="", Age=21 },
                     new Student(){ Name="張三豐", Sex="", Age=21 },
                     new Student(){ Name="李三豐", Sex="", Age=21 },
                     new Student(){ Name="李三豐", Sex="", Age=21 },
                     new Student(){ Name="李四", Sex="", Age=21 },
             };
             var query = list.Where(( item,index )=>item.Name.StartsWith("")&&item.Sex==""&&index%2==0);
             foreach(Student stu in query){
                 Console.WriteLine(stu.Name);
             }

類型篩選:

            object[] arr = {"str",1,3,"mlh"};
            var query = arr.OfType<string>();
            foreach(var item in query){
                Console.WriteLine(item);
            }

 復合的from子句

            List<Student> list = new List<Student>(){
                new Student(){ Name="張三豐", Sex="", Age=new int[]{ 21,23} },
                    new Student(){ Name="張三豐", Sex="", Age=new int[]{ 21,32 } },
                    new Student(){ Name="李三豐", Sex="", Age=new int[]{ 21,35 } },
                    new Student(){ Name="李三豐", Sex="", Age=new int[]{ 21,36 } },
                    new Student(){ Name="李四", Sex="", Age=new int[]{ 21,3} },
            };
            var query =from item in list
                from age in item.Age
                where age==3
                select item;
            foreach(Student stu in query){
                Console.WriteLine(stu.Name);
            }

 

select子句:

 

            List<Student> list = new List<Student>(){
                new Student(){ Name="張三豐", Sex="", Age=new int[]{ 21,23} },
                    new Student(){ Name="張三豐", Sex="", Age=new int[]{ 21,32 } },
                    new Student(){ Name="李三豐", Sex="", Age=new int[]{ 21,35 } },
                    new Student(){ Name="李三豐", Sex="", Age=new int[]{ 21,36 } },
                    new Student(){ Name="李四", Sex="", Age=new int[]{ 21,3} },
            };
            var query =from item in list
                from age in item.Age
                where age==3
                select item.Name;
            foreach(string item in query){
                Console.WriteLine(item);
            }

 查詢方法:

            List<Student> list = new List<Student>(){
                new Student(){ Name="張三豐", Sex="", Age=new int[]{ 21,23} },
                    new Student(){ Name="張三豐", Sex="", Age=new int[]{ 21,32 } },
                    new Student(){ Name="李三豐", Sex="", Age=new int[]{ 21,35 } },
                    new Student(){ Name="李三豐", Sex="", Age=new int[]{ 21,36 } },
                    new Student(){ Name="李四", Sex="", Age=new int[]{ 21,3} },
            };
            var query = list.Where((item) => {
                    return item.Name.StartsWith("");
                    }).Select(item=>item.Name);
            foreach(string item in query){
                Console.WriteLine(item);
            }

 group by 分組:

            List<Student> list = new List<Student>(){
                new Student(){Name="****",Sex="",Age=new int[]{20,30}},
                    new Student(){Name="***",Sex="",Age=new int[]{20,30}},
                    new Student(){Name="***",Sex="",Age=new int[]{20,30}},
                    new Student(){Name="石鹽",Sex="",Age=new int[]{10,11}},
                    new Student(){Name="梅鹽",Sex="",Age=new int[]{10,11}},
            };
            var query = from item in list
                group item by item.Sex;foreach(var stu in query){
                foreach(var item in stu){
                    Console.WriteLine(item.Name);
                }
            }

 


免責聲明!

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



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