📜  来自列表 c# 的 linq(1)

📅  最后修改于: 2023-12-03 15:26:34.543000             🧑  作者: Mango

C# LINQ From List

C# LINQ(Language-Integrated Query)是一组.net框架内置的操作序列的功能,它能够帮助程序员更加方便地处理数据源中的数据。List是C#中的一种基本数据结构,它是一种有序、可重复的集合。在这个主题中,我们将介绍如何使用LINQ从List中查询数据。

从List中选取一部分数据

从List中选取一部分数据是常见的操作之一,这可以通过使用Where()方法实现。Where()方法接收一个谓词函数作为参数,根据该函数的返回结果来决定是否选取当前遍历到的元素。

public static void FilterList()
{
    List<int> numbers = new List<int>() { 1, 2, 3, 4, 5 };
    var filteredNumbers = numbers.Where(n => n % 2 == 0);
    foreach (var number in filteredNumbers)
    {
        Console.WriteLine(number);
    }
}

上述代码中,我们定义了一个List类型的变量numbers,其中包含了一些整数。接着,我们调用了Where()方法并传入一个谓词函数n => n % 2 == 0,这个函数用于判断当前遍历到的元素是否是偶数。最终,我们使用foreach循环打印出结果。

对List中的元素进行转换

除了选取一部分数据外,经常需要对List中的元素进行转换,这可以使用Select()方法实现。Select()方法接收一个转换函数作为参数,它将把每个元素作为参数传入该函数,并返回转换后的结果作为新List的元素。

public static void TransformList()
{
    List<string> names = new List<string>() { "Tom", "Jerry", "Spike" };
    var upperCaseNames = names.Select(n => n.ToUpper());
    foreach (var name in upperCaseNames)
    {
        Console.WriteLine(name);
    }
}

在上述代码中,我们定义了一个List类型的变量names,其中包含了一些字符串。接着,我们调用了Select()方法,并传入了一个转换函数n => n.ToUpper(),这个函数将当前遍历到的字符串转换成大写形式。最终,我们使用foreach循环打印出结果。

对List中的元素进行合并

有时候,需要对List中的元素进行合并或连接,这可以通过使用Aggregate()方法实现。Aggregate()方法接收一个聚合函数作为参数,它将遍历List中的每个元素,并使用函数将它们合并/连接成一个结果。

public static void JoinList()
{
    List<string> names = new List<string>() { "Tom", "Jerry", "Spike" };
    var joinedNames = names.Aggregate((a, b) => a + " & " + b);
    Console.WriteLine(joinedNames);
}

上述代码中,我们定义了一个List类型的变量names,其中包含了一些字符串。接着,我们调用了Aggregate()方法,并传入了一个聚合函数“(a, b) => a + " & " + b”,该函数将当前遍历到的字符串合并成一个以“ & ”符号连接的字符串。最终,我们打印出结果。

总结

通过使用C#的LINQ,我们可以更加方便地对List中的元素进行操作。例如,我们可以根据需要选取一部分数据、对元素进行转换、对元素进行合并/连接等等。这些操作能够提升我们的编程效率,并让我们更加专注于实现业务逻辑。