首頁 >後端開發 >C++ >如何使用表達式樹在 LINQ 中動態選擇匿名類型屬性?

如何使用表達式樹在 LINQ 中動態選擇匿名類型屬性?

Patricia Arquette
Patricia Arquette原創
2025-01-22 19:12:10486瀏覽

How Can I Dynamically Select Anonymous Type Properties in LINQ Using Expression Trees?

利用表達式樹動態選擇LINQ匿名型別屬性

使用表達式樹建立複雜的LINQ查詢來動態選擇匿名類型是可行的。雖然選擇單一屬性的查詢很容易生成,但在匿名類型中選擇多個屬性則需要不同的方法。

為此,可以使用反射發射和輔助類別在運行時動態定義匿名類型。以下是一個範例:

SelectDynamic擴充方法:

<code>public static IQueryable SelectDynamic(this IQueryable source, IEnumerable<string> fieldNames)
{
    ... // 实现细节
}</code>

LinqRuntimeTypeBuilder輔助類:

<code>public static class LinqRuntimeTypeBuilder
{
    ... // 实现细节
}</code>

這種方法允許創建複雜的動態選擇,而無需Intellisense支持,這對於後期綁定資料控制項非常有用。

以下範例產生查詢,從City等於「London」的Countries實體中選擇Name和Population屬性:

<code>var v = Countries.Where(c => c.City == "London")
    .SelectDynamic(new[] { "Name", "Population" });</code>

結果,變數v將包含一個具有Name和Population屬性的動態類型。

以上是如何使用表達式樹在 LINQ 中動態選擇匿名類型屬性?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn