文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

C#中LINQ的使用知多少?LINQ常功能整理,源代码解析

2024-11-30 03:34

关注

LINQ(Language-Integrated Query)是C#语言中的一个强大的查询技术,它提供了一种统一的查询语法,可以用于查询和操作各种数据源,包括集合、数据库、XML等。下面详细描述了LINQ的20个功能点,并提供了相应的源代码。

  1. 查询集合中的所有元素:
int[] numbers = { 1, 2, 3, 4, 5 };

var query = from num in numbers
            select num;

foreach (var num in query)
{
    Console.WriteLine(num);
}
  1. 使用条件过滤集合中的元素:
int[] numbers = { 1, 2, 3, 4, 5 };

var query = from num in numbers
            where num % 2 == 0
            select num;

foreach (var num in query)
{
    Console.WriteLine(num);
}
  1. 对集合中的元素进行排序:
int[] numbers = { 5, 3, 1, 4, 2 };

var query = from num in numbers
            orderby num
            select num;

foreach (var num in query)
{
    Console.WriteLine(num);
}
  1. 对集合中的元素进行分组:
string[] names = { "Alice", "Bob", "Charlie", "David", "Eve" };

var query = from name in names
            group name by name[0];

foreach (var group in query)
{
    Console.WriteLine(group.Key);
    foreach (var name in group)
    {
        Console.WriteLine(name);
    }
}
  1. 对集合中的元素进行投影:
string[] names = { "Alice", "Bob", "Charlie", "David", "Eve" };

var query = from name in names
            select name.Length;

foreach (var length in query)
{
    Console.WriteLine(length);
}
  1. 连接两个集合的元素:
string[] names1 = { "Alice", "Bob", "Charlie" };
string[] names2 = { "David", "Eve", "Frank" };

var query = from name1 in names1
            join name2 in names2 on name1[0] equals name2[0]
            select new { Name1 = name1, Name2 = name2 };

foreach (var pair in query)
{
    Console.WriteLine($"{pair.Name1}, {pair.Name2}");
}
  1. 使用LINQ查询数据库:
using (var dbContext = new MyDbContext())
{
    var query = from user in dbContext.Users
                where user.Age > 18
                select user;

    foreach (var user in query)
    {
        Console.WriteLine(user.Name);
    }
}
  1. 使用LINQ查询XML文档:
XDocument doc = XDocument.Load("data.xml");

var query = from element in doc.Descendants("book")
            where (int)element.Element("price") > 10
            select element.Element("title").Value;

foreach (var title in query)
{
    Console.WriteLine(title);
}
  1. 使用LINQ查询JSON数据:
string json = File.ReadAllText("data.json");
var data = JsonConvert.DeserializeObject>(json);

var query = from person in data
            where person.Age > 18
            select person.Name;

foreach (var name in query)
{
    Console.WriteLine(name);
}
  1. 使用LINQ查询并转换结果:
int[] numbers = { 1, 2, 3, 4, 5 };

var query = from num in numbers
            where num % 2 == 0
            select num * 2;

foreach (var num in query)
{
    Console.WriteLine(num);
}
  1. 使用LINQ查询返回匿名类型:
string[] names = { "Alice", "Bob", "Charlie", "David", "Eve" };

var query = from name in names
            select new { Name = name, Length = name.Length };

foreach (var item in query)
{
    Console.WriteLine($"{item.Name}, {item.Length}");
}
  1. 使用LINQ查询返回自定义类型:
public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}

List people = new List
{
    new Person { Name = "Alice", Age = 20 },
    new Person { Name = "Bob", Age = 25 },
    new Person { Name = "Charlie", Age = 30 }
};

var query = from person in people
            where person.Age > 25
            select person.Name;

foreach (var name in query)
{
    Console.WriteLine(name);
}
  1. 使用LINQ查询返回集合:
int[] numbers = { 1, 2, 3, 4, 5 };

var query = from num in numbers
            where num % 2 == 0
            select num * 2;

List result = query.ToList();

foreach (var num in result)
{
    Console.WriteLine(num);
}
  1. 使用LINQ进行分页查询:
int pageNumber = 2;
int pageSize = 10;

var query = from product in dbContext.Products
            orderby product.Name
            select product;

var page = query.Skip((pageNumber - 1) * pageSize).Take(pageSize);

foreach (var product in page)
{
    Console.WriteLine(product.Name);
}
  1. 使用LINQ进行聚合操作:
int[] numbers = { 1, 2, 3, 4, 5 };

int sum = numbers.Sum();
int max = numbers.Max();
int min = numbers.Min();
double average = numbers.Average();

Console.WriteLine($"Sum: {sum}");
Console.WriteLine($"Max: {max}");
Console.WriteLine($"Min: {min}");
Console.WriteLine($"Average: {average}");
  1. 使用LINQ进行集合的交集操作:
int[] numbers1 = { 1, 2, 3, 4, 5 };
int[] numbers2 = { 4, 5, 6, 7, 8 };

var query = numbers1.Intersect(numbers2);

foreach (var num in query)
{
    Console.WriteLine(num);
}
  1. 使用LINQ进行集合的并集操作:
int[] numbers1 = { 1, 2, 3, 4, 5 };
int[] numbers2 = { 4, 5, 6, 7, 8 };

var query = numbers1.Union(numbers2);

foreach (var num in query)
{
    Console.WriteLine(num);
}
  1. 使用LINQ进行集合的差集操作:
int[] numbers1 = { 1, 2, 3, 4, 5 };
int[] numbers2 = { 4, 5, 6, 7, 8 };

var query = numbers1.Except(numbers2);

foreach (var num in query)
{
    Console.WriteLine(num);
}
  1. 使用LINQ进行集合的连接操作:
var query = from order in dbContext.Orders
            join customer in dbContext.Customers on order.CustomerId equals customer.Id
            select new { OrderId = order.Id, CustomerName = customer.Name };

foreach (var result in query)
{
    Console.WriteLine($"{result.OrderId}, {result.CustomerName}");
}
  1. 使用LINQ进行集合的逆序操作:
int[] numbers = { 1, 2, 3, 4, 5 };

var query = numbers.Reverse();

foreach (var num in query)
{
    Console.WriteLine(num);
}

以上是20个常用的LINQ功能点的示例代码,它们展示了LINQ在C#中的强大查询能力和灵活性。通过使用LINQ,开发人员可以更加方便地进行各种数据操作和查询,提高代码的可读性和开发效率。

来源:今日头条内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯