資訊
The topic you requested is included in another documentation set. For convenience, it's displayed below. Choose Switch to see the topic in its original location.

Enumerable.All<TSource> 方法

判斷序列的所有項目是否全都符合條件。

命名空間:  System.Linq
組件:  System.Core (在 System.Core.dll 中)

public static bool All<TSource>(
	this IEnumerable<TSource> source,
	Func<TSource, bool> predicate
)

類型參數

TSource

source 之項目的型別。

參數

source
類型:System.Collections.Generic.IEnumerable<TSource>
IEnumerable<T> ,其中包含要套用述詞 (Predicate) 的項目。
predicate
類型:System.Func<TSource, Boolean>
用來測試每個項目是否符合條件的函式。

傳回值

類型:System.Boolean
如果來源序列的每個項目都通過以指定之述詞 (Predicate) 進行的測試,或序列是空的,則為 true,否則為 false

使用注意事項

在 Visual Basic 和 C# 中,您可以在任何 IEnumerable<TSource> 類型物件中呼叫這個方法以做為執行個體。使用執行個體方法語法呼叫這個方法時,請省略第一個參數。如需詳細資訊,請參閱擴充方法 (Visual Basic)擴充方法 (C# 程式設計手冊)

例外狀況條件
ArgumentNullException

sourcepredicatenull

注意事項注意事項

這個方法不會傳回集合中的所有項目, 而會判斷集合中的所有項目是否全都符合條件。

一旦可以判斷結果,source 的列舉就會立即停止。

在 Visual Basic 查詢運算式語法中,Aggregate Into All() 子句會轉譯為 All<TSource> 的引動過程。

下列程式碼範例示範如何使用 All<TSource> 判斷序列中的所有項目是否全都符合條件。 變數 allStartWithB 為 true,如果任何一物名稱開頭為「B」,或是 pets 陣列是空的。


            class Pet
            {
                public string Name { get; set; }
                public int Age { get; set; }
            }

            public static void AllEx()
            {
                // Create an array of Pets.
                Pet[] pets = { new Pet { Name="Barley", Age=10 },
                               new Pet { Name="Boots", Age=4 },
                               new Pet { Name="Whiskers", Age=6 } };

                // Determine whether all pet names 
                // in the array start with 'B'.
                bool allStartWithB = pets.All(pet =>
                                                  pet.Name.StartsWith("B"));

                Console.WriteLine(
                    "{0} pet names start with 'B'.",
                    allStartWithB ? "All" : "Not all");
            }

            // This code produces the following output:
            //
            //  Not all pet names start with 'B'. 



All<TSource> 方法傳回的布林值通常是在 where 子句 (Visual Basic 中的 Where 子句) 的述詞,或是 Where 的直接呼叫中使用。 下列範例示範 All 方法的這種使用方式。


class Pet
{
    public string Name { get; set; }
    public int Age { get; set; }
}
class Person
{
    public string LastName { get; set; }
    public Pet[] Pets { get; set; }
}

public static void AllEx2()
{
    List<Person> people = new List<Person>
        { new Person { LastName = "Haas",
                       Pets = new Pet[] { new Pet { Name="Barley", Age=10 },
                                          new Pet { Name="Boots", Age=14 },
                                          new Pet { Name="Whiskers", Age=6 }}},
          new Person { LastName = "Fakhouri",
                       Pets = new Pet[] { new Pet { Name = "Snowball", Age = 1}}},
          new Person { LastName = "Antebi",
                       Pets = new Pet[] { new Pet { Name = "Belle", Age = 8} }},
          new Person { LastName = "Philips",
                       Pets = new Pet[] { new Pet { Name = "Sweetie", Age = 2},
                                          new Pet { Name = "Rover", Age = 13}} }
        };

    // Determine which people have pets that are all older than 5.
    IEnumerable<string> names = from person in people
                                where person.Pets.All(pet => pet.Age > 5)
                                select person.LastName;

    foreach (string name in names)
    {
        Console.WriteLine(name);
    }

    /* This code produces the following output:
     * 
     * Haas
     * Antebi
     */
}


.NET Framework

支援版本:4.5.2、4.5.1、4.5、4、3.5

.NET Framework Client Profile

支援版本:4、3.5 SP1

可攜式類別庫

支援版本:可攜式類別庫

適用於 Windows 市集應用程式的 .NET

支援版本:Windows 8

適用於 Windows Phone 應用程式的 .NET

支援版本:Windows Phone 8、Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (不支援伺服器核心角色), Windows Server 2008 R2 (SP1 (含) 以後版本支援伺服器核心角色,不支援 Itanium)

.NET Framework 並不支援各種平台的所有版本。如需支援版本的清單,請參閱.NET Framework 系統需求

社群新增項目

顯示:
© 2014 Microsoft