C# Dynamic在LINQ查詢中應(yīng)用

c#
小樊
110
2024-06-25 01:59:27
欄目: 編程語言

C#中的動(dòng)態(tài)類型可以在LINQ查詢中靈活應(yīng)用,使得查詢更加動(dòng)態(tài)和通用。下面是一個(gè)示例:

假設(shè)有一個(gè)動(dòng)態(tài)對(duì)象列表,我們想要根據(jù)用戶輸入的條件動(dòng)態(tài)查詢這個(gè)對(duì)象列表??梢允褂脛?dòng)態(tài)類型來實(shí)現(xiàn):

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}");
        }
    }
}

在這個(gè)示例中,我們首先創(chuàng)建了一個(gè)包含三個(gè)動(dòng)態(tài)對(duì)象的列表。然后用戶輸入要過濾的屬性名稱和值,我們使用動(dòng)態(tài)類型進(jìn)行過濾,最后輸出符合條件的對(duì)象。

通過使用動(dòng)態(tài)類型在LINQ查詢中,我們可以實(shí)現(xiàn)更加靈活和通用的查詢,不需要提前指定對(duì)象的屬性和類型,可以根據(jù)用戶輸入任意屬性來進(jìn)行過濾。

0