如何从Linq查询返回匿名场
问题描述:
我想从LINQ的query.My查询得到匿名场如何从Linq查询返回匿名场
from p in product
Select new myProduct
{
id = p.Id,
Name = p.Name,
P.MobileNo
}
//Here is myProduct class
class myProduct
{
public int Id,
public string Name
}
现在这里P.MobileNo是匿名的,我也想回到that.I不能更改myProduct类中的任何内容。
任何人都知道如何做到这一点?
感谢
答
您将需要使用匿名类型
from p in product
select new
{
p.Id,
p.Name,
p.MobileNo
}
或建立包含MobileNo
财产另一个名为类型。如果您需要从方法中返回此代码
答
创建一个将从myProduct继承的类。
class myProduct
{
public int Id {get;set;}
public string Name {get;set;}
}
class mySecondProduct : myProduct
{
public string MobileNo {get;set;}
}
在LINQ:
from p in product
Select new mySecondProduct
{
id = p.Id,
Name = p.Name,
P.MobileNo
}
答
你可以包裹myProduct的对象,并在P.MobileNo匿名类型:
from p in product
select new
{
Product = new myProduct { Id = p.Id, Name = p.Name},
MobileNo = P.MobileNo
}
你不能。 MobileNo不是“匿名的”,它不存在。没有办法分配不存在的字段... – 2014-09-30 12:20:32
没有“匿名属性”。你甚至不能将'匿名类'从**方法**发送回另一个。但是如果你使用.NET 4.5,你可以这样做。怎么样?使用'动态类'。 – 2014-09-30 12:23:05