![](/img/trans.png)
[英]How to convert LINQ Query Generic List of Anonymous objects to IEnumerable<object>
[英]How to return an object (or a list of objects) of anonymous type from a LINQ query to the UI (Console App) in C#?
假設我使用join和groupbys使用LINQ查詢多個表,結果是我想傳遞給UI層的匿名對象的IQueryable<'a>
。 我該如何處理?
如果方法的返回類型是簡單的非泛型IQueryable
,則可以返回IQueryable<'a>
(匿名類型的IQueryable
。 但是,如何使用此非通用IQueryable
對象,如何訪問包含的匿名對象的屬性?
你不能那樣做。 您將需要為其創建具有所需屬性的DTO。
public class DTO
{
public int PropA { get; set; }
.......
.......
}
然后將您的查詢具體化到DTO中:
public List<DTO> GetData()
{
return query.Select(x= > new DTO()
{
PropA = x.SomeColumn,
...........
...........
}).ToList();
}
希望能幫助到你。
您可以使用值元組,因此返回一個新的值元組,如下所示:
public (string Name, int Age, DateTimeOffset Timestamp)[] GetValues()
{
return database.Where(x => ...)
.Select(x => (Name: x.Name, Age: x.Age, Timestamp: DateTimeOffset.Now))
.ToArray();
}
然后,您將獲得一個以值元組為結果的通用數組,並可以使用給定的屬性名稱訪問這些值,例如:
var array = GetValues();
var age = array.First(x => x.Name == "John Doe").Age;
這樣,您不必定義自定義類型即可獲得靈活性
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.