2014-09-30 69 views
2

我想從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類中的任何內容。

任何人都知道如何做到這一點?

感謝

+0

你不能。 MobileNo不是「匿名的」,它不存在。沒有辦法分配不存在的字段... – 2014-09-30 12:20:32

+0

沒有「匿名屬性」。你甚至不能將'匿名類'從**方法**發送回另一個。但是如果你使用.NET 4.5,你可以這樣做。怎麼樣?使用'動態類'。 – 2014-09-30 12:23:05

回答

3

您將需要使用匿名類型

from p in product 
select new 
{ 
    p.Id, 
    p.Name, 
    p.MobileNo 
} 

或建立包含MobileNo財產另一個名爲類型。如果您需要從方法中返回此代碼

2

創建一個將從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 
} 
2

你可以包裹myProduct的對象,並在P.MobileNo匿名類型:

from p in product 
select new 
{ 
    Product = new myProduct { Id = p.Id, Name = p.Name}, 
    MobileNo = P.MobileNo 
}