上面的 q3,q4 用到了匿名类和元组进行投影,匿名类与元组是比 class 和 struct 类型更为简单灵活的数据容器。
var class1 = new { age = 20, name = "mango" };
int age = 21;
string name = "passionfruit";
var class2 = new { age, name };
var unnamed = ("one", "two");
var named = (first: "one", second: "two");
元组的一些其他用法:
public class Employee
public string name;
public int age;
public Employee(string name, int age) => (this.name, this.age) = (name, age);
Employee e = new Employee("Joe", 20);
if ((e.name, e.age) == ("Joe", 20))
Debug.Log("equal");
定义数据源string[] fruits = { "apple", "banana", "mango", "orange", "passionfruit", "grape" };创建查询查询变量本身只存储查询命令。 查询的实际执行将推迟到在 foreach 语句中循环访问查询变量之后进行。// 查询语句语法var q1 = from f in...
Language-Integrated Query (LINQ) 定义了一组可以在 .NET Framework 3.0 编程语言中使用的通用标准查询运算符。 使用这些标准查询运算符可以投影、筛选和遍历内存中的集合或数据库中的表。 请注意,LINQ 查询使用编程
语言本身进行表示,而不表示为应用程序代码中嵌入的字符串。 这是在 .NET Framework 的早期版本中编写多数应用程序方式的重大更改。 使用编程语言中编写查询具有多项重要优势。 它可以简化查询,不必使用单独的查询语言。并且,如果您使用 Visual Studio 2008 IDE,LINQ 还允许您利用编译时检查、静态类型和 IntelliSense。
文章目录1.把集合中的每一项转换为另外一种类型2.匿名类型
1.把集合中的每一项转换为另外一种类型
IEnumerable<int> items = list.Select(it=>it.Age);
foreach (var item in items)
Console.WriteLine(item);
IEnumerable<string> items = list.Where(it=>it.Salary>2500).Select(it=>
LINQ 查询简介TOC
LINQ 通过提供处理各种数据源和数据格式的数据的一致模型,简化了这一情况。 在 LINQ 查询中,始终会用到对象。 可以使用相同的基本编码模式来查询和转换 XML 文档、SQL 数据库、ADO.NET 数据集、.NET 集合中的数据以及 LINQ 提供程序可用的任何其他格式的数据。
查询操作的三个部分
所有 LINQ 查询操作都由以下三个不同的操作组成:
获取数据源
创建查询
执行查询。
下面的示例演示如何用源代码表示查询操作的三个部分。 为方便起见,此示例将一个整数数组用作数
投影是指在将序列中的元素转换为一个自定义形式的操作。投影操作符Select和SelectMany用于选择出赋予了适当功能的值。SelectMany操作符可以处理多个集合。
LINQ表达式语法:
1. Select
Select操作符对单个序列或集合中的值进行投影。
1.1 原型定义
public static IEnumerable<TResult&g...
投影操作,乍一看不知道在说啥。那么什么是投影操作呢?其实就是Select操作,名字起的怪怪的。和Linq查询表达式中的select操作是一样的。它能够选择数据源中的元素,并指定元素的表现形式。投影操作包括以下2种操作:
1、Select操作,将数据源中的元素投影到新的序列中,并指定元素的类型和表现形式。
2、SelectMany操作,也可以将数据源中的元素投影到新的序列中,并指定元素的类型...
// 使用LINQ查询语句查询数据
var query = from row in rows
where row.Field<string>("Name") == "John"
select new {
Name = row.Field<string>("Name"),
Age = row.Field<int>("Age")
// 遍历查询结果
foreach (var item in query) {
Console.WriteLine("Name: {}, Age: {1}", item.Name, item.Age);
在上面的代码中,我们首先将DataTable对象转换为IEnumerable<DataRow>类型,然后使用LINQ查询语句查询数据,最后将查询结果转换为一个匿名类型,包含Name和Age两个属性。最后,我们遍历查询结果,并输出每个人的姓名和年龄。