共用方式為


HOW TO:從方法傳回查詢 (C# 程式設計手冊)

更新:2007 年 11 月

這個範例會示範如何從傳回值中的方法並以 out 參數方式來傳回查詢。

任何查詢的型別必須是 IEnumerableIEnumerable<T>,或者是 IQueryable<T> 一類的衍生型別 (Derived Type)。因此,任何傳回值或是傳回查詢之方法的 out 參數,一定也會具有該型別。如果方法會將查詢具體化為具象的 List<T>Array 型別,這時便會被視為將傳回查詢結果,而不是傳回查詢本身。從方法傳回的查詢變數仍然可以加以撰寫或修改。

如需如何執行傳遞至方法之查詢的範例,請參閱物件傾印工具範例

範例

在下列範例中,第一個方法會以傳回值方式傳回查詢,第二個方法則會以 out 參數傳回查詢。請注意,這兩種情況都是傳回查詢,而不是傳回查詢結果。

class MQ
{
    IEnumerable<string> QueryMethod1(ref int[] ints)
    {
        var intsToStrings = from i in ints
                            where i > 4
                            select i.ToString();
        return intsToStrings;
    }

    static void Main()
    {
        MQ app = new MQ();

        int[] nums = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };

        var myQuery = app.QueryMethod1(ref nums);


        //execute myQuery
        foreach (string s in myQuery)
        {
            Console.WriteLine(s);
        }

        //modify myQuery
        myQuery = (from str in myQuery
                   orderby str descending
                   select str).
                  Take(3);

        // Executing myQuery after more
        // composition
        Console.WriteLine("After modification:");
        foreach (string s in myQuery)
        {
            Console.WriteLine(s);
        }

        // Keep console window open in debug mode.
        Console.WriteLine("Press any key to exit.");
        Console.ReadKey();
    }
}

編譯程式碼

  • 建立以 .NET Framework 3.5 版為目標的 Visual Studio 專案。根據預設,該專案具有 System.Core.dll 的參考,以及 System.Linq 命名空間的 using 指示詞。

  • 將程式碼複製至您的專案中。

  • 按 F5 編譯和執行程式。

  • 按任何鍵離開主控台視窗。

請參閱

概念

LINQ 查詢運算式 (C# 程式設計手冊)