LINQ(五) ——使用LINQ进行匿名对象初始化

总目录
C# 语法总目录
上一篇:LINQ(四) ------使用LINQ进行对象类型初始化

LINQ 五 ------使用LINQ进行匿名对象初始化

    • [6.2 匿名类型](#6.2 匿名类型)

6.2 匿名类型

可以不用声明定义一个对象,直接使用new,然后直接赋值即可

csharp 复制代码
string[] names = { "Tom", "Jerry", "kate", "Lucy", "Micky", "li" };

var query =
    from n in names
    select new
    {
        name = n,
        liName = n.ToLower()
    };

foreach (var item in query)
{
    Console.WriteLine(item.liName+","+item.name);
}

Console.WriteLine("--------------");

IEnumerable<string> strName =
    from n in query
    where n.name.Length > 2
    orderby n.name.Length descending
    select n.name + "," + n.liName;

foreach (var item in strName)
{
    Console.WriteLine(item);
}
//输出
tom,Tom
jerry,Jerry
kate,kate
lucy,Lucy
micky,Micky
li,li
--------------
Jerry,jerry
Micky,micky
kate,kate
Lucy,lucy
Tom,tom

使用两个数组,分别取出两个数组元素的索引,进行比较,然后拼接成一个匿名对象,进行输出。

csharp 复制代码
string[] names = { "Tom", "Jerry", "kate", "Lucy", "Micky", "li" ,"zh"};
int[] ages = { 10, 20, 50, 12, 45, 20 };

var indexedItems = names.Select((value, index) => new { Index = index, Value = value });

var dicar =
    from n in names.Select((value, index) => new { Index = index, Value = value })
    join a in ages.Select((value, index) => new { Index = index, Value = value }) on n.Index equals a.Index
    select new
    {
        name = n.Value,
        age = a.Value
    };

foreach (var item in dicar)
{
    Console.WriteLine($"{item.name},{item.age}");
}
//输出
Tom,10
Jerry,20
kate,50
Lucy,12
Micky,45
li,20

总目录
C# 语法总目录
上一篇:LINQ(四) ------使用LINQ进行对象类型初始化

相关推荐
广煜永不挂科1 小时前
Devexpress.Dashboard的调用二义性
c#·express
初九之潜龙勿用3 小时前
C#校验画布签名图片是否为空白
开发语言·ui·c#·.net
吾与谁归in5 小时前
【C#设计模式(13)——代理模式(Proxy Pattern)】
设计模式·c#·代理模式
吾与谁归in5 小时前
【C#设计模式(14)——责任链模式( Chain-of-responsibility Pattern)】
设计模式·c#·责任链模式
神仙别闹6 小时前
基于C#和Sql Server 2008实现的(WinForm)订单生成系统
开发语言·c#
向宇it15 小时前
【unity小技巧】unity 什么是反射?反射的作用?反射的使用场景?反射的缺点?常用的反射操作?反射常见示例
开发语言·游戏·unity·c#·游戏引擎
九鼎科技-Leo16 小时前
什么是 WPF 中的依赖属性?有什么作用?
windows·c#·.net·wpf
Heaphaestus,RC17 小时前
【Unity3D】获取 GameObject 的完整层级结构
unity·c#
baivfhpwxf202317 小时前
C# 5000 转16进制 字节(激光器串口通讯生成指定格式命令)
开发语言·c#
直裾17 小时前
Scala全文单词统计
开发语言·c#·scala