Linq返回指定类型

1.

public IEnumerable<RiskInfo> GetRisksByUsername()
{
AuroraDataContext db = new AuroraDataContext();
var list = db.GetRisksByUsername().Select(c => new RiskInfo { Number = c.Number, Name = c.Name });

return list;
}

 

public class RiskInfo
{
public int? Number { get; set; }
public string Name { get; set; }
}

 

2.

下面给出个简单的例子:

 

public interface IStockStatistics
{
IT_Modelnumber ModelNumber { get ; set ; }
int TotalAmount { get ; set ;}
}

 

public class StockStatistics:IStockStatistics 
    {
        private int _id;
        private IT_Modelnumber  _model;
        private int _amount;

        public int Id
        {
            get{return _id  ;}
            set{_id =value ;}
        }
        public IT_Modelnumber ModelNumber
        {
            get { return _model; }
            set { _model = value; }
        }
        public int TotalAmount
        { 
            get { return _amount; }
            set { _amount = value; }
        }
    }

 

public ICollection<IStockStatistics > GetStatistics()
         {
              var result = from p in Database.StockDS
                           group p by p.ToModelnumber into g
                           select new StockStatistics
                           {
                               Id = g.Key.Id,
                               ModelNumber = g.Key,
                               TotalAmount = g.Sum(p => p.Amount)
                          };
             return result.AsEnumerable().Cast<IStockStatistics>().ToList().AsReadOnly();
         }

 

 简单的说这个方法就是将原本匿名的类型转换成我们已知的类型,但这个类型不存在,所以需要我们先进行定义。

select new StockStatistics :new 后面的类型有些资料中省略了,但我在自己的环境中省略后编译没有通过。

 
 

转载于:https://www.cnblogs.com/cw_volcano/archive/2012/01/30/2331574.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值