wordpress建站吧,一般使用的分辨率显示密度是多少?,门户建设网站多少钱,搬家Language Integrated Query (LINQ) 是 C# 中一个强大的特性#xff0c;用于查询和操作数据集合。LINQ 提供了一种简洁、类型安全和可读性高的方式来处理数据集合。本文将通过多个示例详细解释 LINQ 的集合运算#xff0c;包括筛选、排序、分组、投影和连接。
一、LINQ 基础 …Language Integrated Query (LINQ) 是 C# 中一个强大的特性用于查询和操作数据集合。LINQ 提供了一种简洁、类型安全和可读性高的方式来处理数据集合。本文将通过多个示例详细解释 LINQ 的集合运算包括筛选、排序、分组、投影和连接。
一、LINQ 基础
LINQ 查询通常由以下部分组成
数据源要查询的集合。查询定义如何从数据源中提取信息。执行对查询进行遍历以检索数据。
示例数据源
Listint numbers new Listint { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; 二、筛选Filtering
筛选操作用于从数据源中选择符合条件的元素。
示例选择所有偶数
var evenNumbers from number in numberswhere number % 2 0select number;foreach (var num in evenNumbers)
{Console.WriteLine(num);
} 三、排序Sorting
排序操作用于对数据源中的元素进行排序。
示例按升序排序
var ascendingNumbers from number in numbersorderby numberselect number;foreach (var num in ascendingNumbers)
{Console.WriteLine(num);
}
示例按降序排序
var descendingNumbers from number in numbersorderby number descendingselect number;foreach (var num in descendingNumbers)
{Console.WriteLine(num);
}
四、分组Grouping
分组操作用于将数据源中的元素按指定的键进行分组。
示例按奇偶分组
var groupedNumbers from number in numbersgroup number by number % 2 into numberGroupselect numberGroup;foreach (var group in groupedNumbers)
{Console.WriteLine(group.Key 0 ? Even numbers: : Odd numbers:);foreach (var num in group){Console.WriteLine(num);}
}
五、投影Projection
投影操作用于从数据源中选择特定的元素或计算结果。
示例选择数字的平方
var squaredNumbers from number in numbersselect number * number;foreach (var num in squaredNumbers)
{Console.WriteLine(num);
}
六、连接Joining
连接操作用于将两个数据源的相关元素组合在一起。
示例内连接
Liststring categories new Liststring { A, B, C };
ListProduct products new ListProduct
{new Product { Name Apple, Category A },new Product { Name Banana, Category B },new Product { Name Carrot, Category C },new Product { Name Date, Category D }
};var innerJoin from category in categoriesjoin product in products on category equals product.Categoryselect new { Category category, Product product.Name };foreach (var item in innerJoin)
{Console.WriteLine($Category: {item.Category}, Product: {item.Product});
}
七、综合示例
结合多个 LINQ 操作进行综合示例。
示例筛选、排序、分组和投影
var result from number in numberswhere number % 2 0orderby number descendinggroup number by number % 4 into numberGroupselect new{Remainder numberGroup.Key,Numbers numberGroup};foreach (var group in result)
{Console.WriteLine($Numbers with remainder {group.Remainder} when divided by 4:);foreach (var num in group.Numbers){Console.WriteLine(num);}
}