C# LINQ:简化集合查询(基础用法)

简介: LINQ是C#中集成的查询功能,可简洁高效地查询集合、数据库等数据源。通过示例演示了过滤、排序、分组、投影和聚合操作,展现其在处理产品列表时的强大与便捷。

LINQ(Language Integrated Query)是集成在 C# 中的查询语言,可简洁地查询集合、数据库等数据源。
public class LinqDemo
{
public static void QueryList()
{
// 数据源:产品列表
List products = new List
{
new Product { Id = 1, Name = "C#教程", Price = 99.9m, Category = "图书" },
new Product { Id = 2, Name = "键盘", Price = 199.9m, Category = "数码" },
new Product { Id = 3, Name = "鼠标", Price = 89.9m, Category = "数码" },
new Product { Id = 4, Name = "Java教程", Price = 89.9m, Category = "图书" },
new Product { Id = 5, Name = "显示器", Price = 1299.9m, Category = "数码" }
};

    // 1. 查询所有数码类产品(Where)
    var digitalProducts = products.Where(p => p.Category == "数码");
    Console.WriteLine("=== 数码类产品 ===");
    foreach (var p in digitalProducts)
    {
        Console.WriteLine($"{p.Name} - {p.Price:C}");
    }

    // 2. 查询价格低于100元的产品,按价格升序排序(Where + OrderBy)
    var cheapProducts = products.Where(p => p.Price < 100).OrderBy(p => p.Price);
    Console.WriteLine("\n=== 价格低于100元的产品(升序) ===");
    foreach (var p in cheapProducts)
    {
        Console.WriteLine($"{p.Name} - {p.Price:C}");
    }

    // 3. 按分类分组(GroupBy)
    var groupedByCategory = products.GroupBy(p => p.Category);
    Console.WriteLine("\n=== 按分类分组 ===");
    foreach (var group in groupedByCategory)
    {
        Console.WriteLine($"分类:{group.Key}");
        foreach (var p in group)
        {
            Console.WriteLine($"  - {p.Name}");
        }
    }

    // 4. 投影(只取名称和价格,匿名类型)
    var productInfo = products.Select(p => new { p.Name, p.Price });
    Console.WriteLine("\n=== 产品名称和价格 ===");
    foreach (var info in productInfo)
    {
        Console.WriteLine($"{info.Name}:{info.Price:C}");
    }

    // 5. 统计(Count/Sum/Average)
    int totalCount = products.Count();
    decimal totalPrice = products.Sum(p => p.Price);
    decimal avgPrice = products.Average(p => p.Price);
    Console.WriteLine($"\n=== 统计信息 ===");
    Console.WriteLine($"产品总数:{totalCount}");
    Console.WriteLine($"总价:{totalPrice:C}");
    Console.WriteLine($"均价:{avgPrice:C}");
}

}

// 产品实体类
public class Product
{
public int Id { get; set; }
public string Name { get; set; }
public decimal Price { get; set; }
public string Category { get; set; }
}

// 调用示例
LinqDemo.QueryList();

相关文章
关于 C#使用Console.WriteLine调试没有命令行输出 的解决方法
关于 C#使用Console.WriteLine调试没有命令行输出 的解决方法
关于 C#使用Console.WriteLine调试没有命令行输出 的解决方法
|
C# 开发者 Windows
基于Material Design风格开源、易用、强大的WPF UI控件库
基于Material Design风格开源、易用、强大的WPF UI控件库
1445 0
|
6月前
|
存储 数据库连接 C#
C# 配置文件读取:App.config 用法
App.config用于存储程序配置(如数据库连接、接口地址),避免硬编码,提升可维护性。通过ConfigurationManager读取配置,支持字符串、整型、布尔值及连接字符串的获取,需引用System.Configuration程序集。
|
C# C++
创建目标类型对象在C#7.3中不可用,请使用9.0或更高的语言版本
创建目标类型对象在C#7.3中不可用,请使用9.0或更高的语言版本
3023 0
创建目标类型对象在C#7.3中不可用,请使用9.0或更高的语言版本
|
C# 图形学
【unity小技巧】Unity音乐和音效管理器
【unity小技巧】Unity音乐和音效管理器
1491 2
|
弹性计算 算法 搜索推荐
活动实践 | 通过函数计算部署ComfyUI以实现一个AIGC图像生成系统
ComfyUI是基于节点工作流稳定扩散算法的新一代WebUI,支持高质量图像生成。用户可通过阿里云函数计算快速部署ComfyUI应用模板,实现个性化定制与高效服务。首次生成图像因冷启动需稍长时间,之后将显著加速。此外,ComfyUI允许自定义模型和插件,满足多样化创作需求。
|
XML 开发框架 .NET
C# | Linq基本功 —— 必学的必熟的10个方法
Linq(Language Integrated Query)是C#语言中的一种查询语言,它提供了一种统一的方式来查询和操作各种数据源,如集合、数据库、XML等。Linq的出现使得开发者能够以一种更简洁、更直观的方式来处理数据,提高了代码的可读性和可维护性。
557 0
|
C# Windows
WPF中如何使用HandyCotrol控件库
WPF中如何使用HandyCotrol控件库
2290 1
|
API 开发者 Python
API接口:原理、实现及应用
本文详细介绍了API接口在现代软件开发中的重要性及其工作原理。API接口作为应用程序间通信的桥梁,通过预定义的方法和协议实现数据和服务的共享。文章首先解释了API接口的概念,接着通过Python Flask框架示例展示了API的设计与实现过程,并强调了安全性的重要性。最后,本文还讨论了API接口在Web服务和移动应用程序等领域的广泛应用场景。
|
API C# 图形学
程序技术好文:深入理解xLua热更新原理
程序技术好文:深入理解xLua热更新原理
1265 0