C#: LinQ 用法合集(持续更新)

373 阅读2分钟

使用LinQ 获取第一笔数据

要使用 LINQ 获取集合中的第一笔数据,可以使用 LINQ 查询操作符中的 First()FirstOrDefault() 方法。这两个方法都用于获取集合中的第一个元素,但有一些重要的区别:

  1. First() 方法会抛出异常(InvalidOperationException),如果集合为空的话。所以,只在您确保集合不为空时使用它。

  2. FirstOrDefault() 方法会返回默认值(例如,对于引用类型是 null,对于值类型是默认值,比如 0),如果集合为空。它不会抛出异常。

以下是如何使用这两种方法的示例:

// 假设有一个字符串列表
List<string> myList = new List<string> { "Apple", "Banana", "Cherry" };

// 使用 First() 方法获取第一个元素
string firstItem = myList.First(); // 如果列表为空会抛出异常

// 使用 FirstOrDefault() 方法获取第一个元素
string firstItemOrDefault = myList.FirstOrDefault(); // 如果列表为空会返回 null

// 如果您希望在列表为空时提供一个默认值,可以这样做:
string firstItemWithDefault = myList.FirstOrDefault() ?? "Default";

// 如果您想要获取带有条件的第一个元素,可以使用 Where() 方法:
string firstFilteredItem = myList.Where(item => item.StartsWith("B")).FirstOrDefault();

使用排序功能

降序排序

在 LINQ (Language Integrated Query) 中,OrderByDescending 是用于按降序对集合中的元素进行排序的方法。这个方法通常与 OrderBy 一起使用,用于按指定的条件对集合进行排序。

以下是 OrderByDescending 方法的基本用法示例:

假设有一个包含整数的集合:

List<int> numbers = new List<int> { 5, 2, 9, 1, 8, 3 };

可以使用 OrderByDescending 来按降序对这些数字进行排序:

var descendingOrder = numbers.OrderByDescending(x => x);

foreach (var number in descendingOrder)
{
    Console.WriteLine(number);
}

在这个示例中,OrderByDescending 方法接受一个 lambda 表达式 x => x,这表示按集合中的元素值进行排序。排序结果将按降序排列,所以输出将是:

9
8
5
3
2
1

还可以根据需要将 OrderByDescending 与其他 LINQ 方法(如 WhereSelect 等)组合使用,以进行更复杂的查询和排序操作。