C#中其他简单LINQ查询表达式的简单使用介绍

本文详细介绍了LINQ表达式的各种扩展方法,包括Range、Repeat、Skip、Take等,并通过实例展示了如何使用这些方法来处理数据集。文章还涵盖了查询、排序、筛选和聚合操作的关键概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文主要记录下其他简单LINQ表达式,因为比较简单,记录下以后方便回忆,本文也会持续更新。

一些有用的LINQ扩展方法:

LINQ表达式作用是否延迟查询
Range生成指定范围内的整数的序列 
Repeat生成包含一个重复值的序列 
Skip跳过指定数量的元素,返回剩余元素
SkipWhile跳过满足条件的元素,直到不满足条件为止,然后返回剩余元素
Take获取指定数量的元素
TakeWhile获取满足条件的元素,直到不满足添加为止,然后返回满足条件的元素
Where过滤掉数据中不匹配的元素
Select设计一个查询结果
SelectMany把每个数据项投射到一个条目序列之中,然后把所有这些结果序列连接成一个序列
Reverse反转数据源中数据项的顺序
OrderBy基于lambda表达式返回的值对源数据进行排序
OrderByDescending基于lambda表达式返回的值对源数据进行排序
ALL如果源数据中的所有元素都与谓词匹配,则返回true
Any如果源数据中至少有一个元素与谓词匹配,则发挥true
Contains如果源数据含有指定的元素或值,则返回true
Count返回数据源中的元素数量
First返回数据源中的第一个元素
FirstOrDefault返回数据源中的第一个元素,如果没有,则返回默认值
Last返回数据源中的最后一个元素
LastOrDeafult返回数据源中的最后一个元素,如果没有,则返回默认值
Max返回lambda表达式的最大值
Min返回lambda表达式的最小值
Single返回数据源的第一个元素,没有或者多个匹配是抛出异常
SingleOrDefault返回数据源的第一个元素,没有时返回默认值,多个匹配则抛出异常
Sum对选定的值进行求和

ToArray

ToDictionary

ToList

把数据源转化成数组或者其他集合类型

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

测试代码如下图所示: 

static void Main(string[] args)
{
    
            List<Phone> PhoneLists = new List<Phone>()
            {
                new Phone { Country = "中国", City = "北京", Name = "小米" },
                new Phone { Country = "中国",City = "北京",Name = "华为"},
                new Phone { Country = "中国",City = "北京",Name = "联想"},
                new Phone { Country = "中国",City = "台北",Name = "魅族"},
                new Phone { Country = "日本",City = "东京",Name = "索尼"},
                new Phone { Country = "日本",City = "大阪",Name = "夏普"},
                new Phone { Country = "日本",City = "东京",Name = "松下"},
                new Phone { Country = "美国",City = "加州",Name = "苹果"},
                new Phone { Country = "美国",City = "华盛顿",Name = "三星"},
                new Phone { Country = "美国",City = "华盛顿",Name = "HTC"}
            };
            Console.WriteLine("Range结果如下所示:");
            IEnumerable<int> s = Enumerable.Range(1, 10);
            foreach (var list in s)
            {
                Console.Write(list + ",");
            }
            Console.WriteLine();
            Console.WriteLine("Repeat结果如下所示:");
            IEnumerable<Phone> Repeat = Enumerable.Repeat(PhoneLists.FirstOrDefault(),5);
            foreach (var list in Repeat)
            {
                Console.WriteLine($"{list.Country} -- {list.City} --{list.Name}");
            }
            var sLists = PhoneLists.Skip(3);
            Console.WriteLine("Skip结果如下所示:");
            foreach (var list in sLists)
            {
                Console.WriteLine($"{list.Country} -- {list.City} --{list.Name}");
            }
            Console.WriteLine("SkipWhile结果如下所示:");
            var swLists = PhoneLists.SkipWhile(p => p.Country.Equals("日本"));
            foreach (var list in swLists)
            {
                Console.WriteLine($"{list.Country} -- {list.City} --- {list.Name}");
            }
            Console.WriteLine("Take结果如下所示:");
            var tLists = PhoneLists.Take(3);
            foreach (var list in tLists)
            {
                Console.WriteLine($"{list.Country} -- {list.City} --- {list.Name}");
            }
            Console.WriteLine("TakeWhile结果如下图所示:");
            var twLists = PhoneLists.TakeWhile(p => p.Country.Equals("中国"));
            foreach (var list in twLists)
            {
                Console.WriteLine($"{list.Country} -- {list.City} --- {list.Name}");
            }
            Console.Read();
}

 输出结果如下图所示:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值