HOW TO:從方法傳回查詢 (C# 程式設計手冊)
更新:2007 年 11 月
這個範例會示範如何從傳回值中的方法並以 out 參數方式來傳回查詢。
任何查詢的型別必須是 IEnumerable 或 IEnumerable<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 編譯和執行程式。
按任何鍵離開主控台視窗。