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调试没有命令行输出 的解决方法
|
1月前
|
存储 数据库连接 C#
C# 配置文件读取:App.config 用法
App.config用于存储程序配置(如数据库连接、接口地址),避免硬编码,提升可维护性。通过ConfigurationManager读取配置,支持字符串、整型、布尔值及连接字符串的获取,需引用System.Configuration程序集。
|
网络协议 C# 文件存储
C# 利用FluentFTP实现FTP上传下载功能
C# 利用FluentFTP实现FTP上传下载功能
1152 0
C# 利用FluentFTP实现FTP上传下载功能
|
监控 数据中心 数据安全/隐私保护
|
XML 开发框架 .NET
C# | Linq基本功 —— 必学的必熟的10个方法
Linq(Language Integrated Query)是C#语言中的一种查询语言,它提供了一种统一的方式来查询和操作各种数据源,如集合、数据库、XML等。Linq的出现使得开发者能够以一种更简洁、更直观的方式来处理数据,提高了代码的可读性和可维护性。
442 0
|
C# Windows
WPF中如何使用HandyCotrol控件库
WPF中如何使用HandyCotrol控件库
1061 1
|
应用服务中间件 Shell PHP
windows系统配置nginx环境运行pbootcms访问首页直接404的问题
windows系统配置nginx环境运行pbootcms访问首页直接404的问题
|
存储 NoSQL 关系型数据库
可以存储文件的数据库有哪些?
可以存储文件的数据库有哪些?
1934 0
|
API C# 图形学
程序技术好文:深入理解xLua热更新原理
程序技术好文:深入理解xLua热更新原理
869 0
|
API 开发者 Python
API接口:原理、实现及应用
本文详细介绍了API接口在现代软件开发中的重要性及其工作原理。API接口作为应用程序间通信的桥梁,通过预定义的方法和协议实现数据和服务的共享。文章首先解释了API接口的概念,接着通过Python Flask框架示例展示了API的设计与实现过程,并强调了安全性的重要性。最后,本文还讨论了API接口在Web服务和移动应用程序等领域的广泛应用场景。

热门文章

最新文章