C#中的動態類型可以在LINQ查詢中靈活應用,使得查詢更加動態和通用。下面是一個示例:
假設有一個動態對象列表,我們想要根據用戶輸入的條件動態查詢這個對象列表。可以使用動態類型來實現:
using System;
using System.Collections.Generic;
using System.Linq;
class Program
{
static void Main()
{
var dynamicObjects = new List<dynamic>
{
new { Id = 1, Name = "Alice", Age = 25 },
new { Id = 2, Name = "Bob", Age = 30 },
new { Id = 3, Name = "Charlie", Age = 35 }
};
Console.WriteLine("Enter a property name to filter by:");
string propertyName = Console.ReadLine();
Console.WriteLine("Enter a value to filter by:");
string filterValue = Console.ReadLine();
var filteredObjects = dynamicObjects.Where(obj => obj.GetType().GetProperty(propertyName).GetValue(obj).ToString() == filterValue);
foreach (var obj in filteredObjects)
{
Console.WriteLine($"Id: {obj.Id}, Name: {obj.Name}, Age: {obj.Age}");
}
}
}
在這個示例中,我們首先創建了一個包含三個動態對象的列表。然后用戶輸入要過濾的屬性名稱和值,我們使用動態類型進行過濾,最后輸出符合條件的對象。
通過使用動態類型在LINQ查詢中,我們可以實現更加靈活和通用的查詢,不需要提前指定對象的屬性和類型,可以根據用戶輸入任意屬性來進行過濾。