QuerySyntax(查询语法)

ContractedBlock.gif ExpandedBlockStart.gif Code
/// <summary>
/// QuerySyntax(查询语法)的摘要说明
/// </summary>
public class QuerySyntax
{
    
public int ID { getset; }
    
public string Name { getset; }

    
public void QuerySyntaxTest()
    {
        List
<QuerySyntax> list = new List<QuerySyntax>
        {
            
new QuerySyntax { ID = 1, Name = "webabcd" },
            
new QuerySyntax { ID = 2, Name = "webabcde" },
            
new QuerySyntax { ID = 2, Name = "webabcdef" },
            
new QuerySyntax { ID = 2, Name = "webabcdefg" },
            
new QuerySyntax { ID = 2, Name = "webabcdefgh" },
            
new QuerySyntax { ID = 2, Name = "webabcdefghi" },
            
new QuerySyntax { ID = 2, Name = "webabcdefghij" },
            
new QuerySyntax { ID = 2, Name = "webabcdefghijk" },
            
new QuerySyntax { ID = 2, Name = "webabcdefghijkl" },
            
new QuerySyntax { ID = 2, Name = "webabcdefghijklm" },
            
new QuerySyntax { ID = 3, Name = "webabcdefghijklmn" }
        };

        IEnumerable
<QuerySyntax> l = from o in list
                                     
where o.Name.Length > 10
                                     orderby o.Name.Length descending
                                     select o;

        
// 上面的(查询语法)等同于下面的(LINQ扩展方法和Lambda表达式)
        
// 查询语法相对更容易理解

        
// IEnumerable<QuerySyntax> l = list.Where(o => o.Name.Length > 10).OrderByDescending(o => o.Name.Length);



        
// Projection(映射)
        
// 可以返回一个新的类型
        IEnumerable<Projection> l2 = from o in list
                                      
where o.Name.Length > 10
                                      orderby o.Name.Length descending
                                      select 
new Projection { Name = o.Name };
    }
}

/// <summary>
/// 为了演示Projection(映射)而写的实体类
/// </summary>
public class Projection
{
    
public string Name { getset; }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值