Queryable.ThenByDescending Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Öğelerin sonraki sıralamasını azalan sırada gerçekleştirir.
Aşırı Yüklemeler
ThenByDescending<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>) |
Bir anahtara göre öğelerin sonraki sıralamasını azalan sırada gerçekleştirir. |
ThenByDescending<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>, IComparer<TKey>) |
Belirtilen bir karşılaştırıcıyı kullanarak bir dizideki öğelerin sonraki sıralamasını azalan sırada gerçekleştirir. |
ThenByDescending<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>)
- Kaynak:
- Queryable.cs
- Kaynak:
- Queryable.cs
- Kaynak:
- Queryable.cs
Bir anahtara göre öğelerin sonraki sıralamasını azalan sırada gerçekleştirir.
public:
generic <typename TSource, typename TKey>
[System::Runtime::CompilerServices::Extension]
static System::Linq::IOrderedQueryable<TSource> ^ ThenByDescending(System::Linq::IOrderedQueryable<TSource> ^ source, System::Linq::Expressions::Expression<Func<TSource, TKey> ^> ^ keySelector);
public static System.Linq.IOrderedQueryable<TSource> ThenByDescending<TSource,TKey> (this System.Linq.IOrderedQueryable<TSource> source, System.Linq.Expressions.Expression<Func<TSource,TKey>> keySelector);
static member ThenByDescending : System.Linq.IOrderedQueryable<'Source> * System.Linq.Expressions.Expression<Func<'Source, 'Key>> -> System.Linq.IOrderedQueryable<'Source>
<Extension()>
Public Function ThenByDescending(Of TSource, TKey) (source As IOrderedQueryable(Of TSource), keySelector As Expression(Of Func(Of TSource, TKey))) As IOrderedQueryable(Of TSource)
Tür Parametreleri
- TSource
öğelerinin source
türü.
- TKey
işlevi tarafından döndürülen anahtarın türü.keySelector
Parametreler
- source
- IOrderedQueryable<TSource>
IOrderedQueryable<T> Sıralanacak öğeleri içeren bir.
- keySelector
- Expression<Func<TSource,TKey>>
Her öğeden anahtar ayıklamak için bir işlev.
Döndürülenler
Öğeleri IOrderedQueryable<T> bir anahtara göre azalan düzende sıralanan bir.
Özel durumlar
source
veya keySelector
şeklindedir null
.
Açıklamalar
Bu yöntem, tür bağımsız değişkeni türlerden Expression<TDelegate> biri olan türünde en az bir parametreye Func<T,TResult> sahiptir. Bu parametreler için bir lambda ifadesi geçirebilirsiniz ve bu ifade bir Expression<TDelegate>olarak derlenir.
yöntemi, ThenByDescending<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>) kendisini oluşturulan genel bir MethodCallExpression yöntem olarak çağıran ThenByDescending<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>) bir oluşturur. Ardından parametresinin MethodCallExpressionCreateQuery<TElement>(Expression) özelliği tarafından temsil edilen yöntemine IQueryProviderProvidersource
iletir. Çağrının CreateQuery<TElement>(Expression) sonucu türüne IOrderedQueryable<T> döndürülür ve döndürülür.
Çağrıyı ThenByDescending<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>) temsil eden bir ifade ağacının yürütülmesi sonucunda oluşan sorgu davranışı, parametre türünün uygulanmasına source
bağlıdır. Beklenen davranış, öğelerinin source
her öğesinde çağrılarak keySelector
elde edilen anahtara göre azalan düzende ikincil bir sıralama gerçekleştirmesidir source
. Önceden oluşturulmuş tüm sıralama düzenleri korunur.
Şunlara uygulanır
ThenByDescending<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>, IComparer<TKey>)
- Kaynak:
- Queryable.cs
- Kaynak:
- Queryable.cs
- Kaynak:
- Queryable.cs
Belirtilen bir karşılaştırıcıyı kullanarak bir dizideki öğelerin sonraki sıralamasını azalan sırada gerçekleştirir.
public:
generic <typename TSource, typename TKey>
[System::Runtime::CompilerServices::Extension]
static System::Linq::IOrderedQueryable<TSource> ^ ThenByDescending(System::Linq::IOrderedQueryable<TSource> ^ source, System::Linq::Expressions::Expression<Func<TSource, TKey> ^> ^ keySelector, System::Collections::Generic::IComparer<TKey> ^ comparer);
public static System.Linq.IOrderedQueryable<TSource> ThenByDescending<TSource,TKey> (this System.Linq.IOrderedQueryable<TSource> source, System.Linq.Expressions.Expression<Func<TSource,TKey>> keySelector, System.Collections.Generic.IComparer<TKey> comparer);
public static System.Linq.IOrderedQueryable<TSource> ThenByDescending<TSource,TKey> (this System.Linq.IOrderedQueryable<TSource> source, System.Linq.Expressions.Expression<Func<TSource,TKey>> keySelector, System.Collections.Generic.IComparer<TKey>? comparer);
static member ThenByDescending : System.Linq.IOrderedQueryable<'Source> * System.Linq.Expressions.Expression<Func<'Source, 'Key>> * System.Collections.Generic.IComparer<'Key> -> System.Linq.IOrderedQueryable<'Source>
<Extension()>
Public Function ThenByDescending(Of TSource, TKey) (source As IOrderedQueryable(Of TSource), keySelector As Expression(Of Func(Of TSource, TKey)), comparer As IComparer(Of TKey)) As IOrderedQueryable(Of TSource)
Tür Parametreleri
- TSource
öğelerinin source
türü.
- TKey
İşlev tarafından döndürülen anahtarın keySelector
türü.
Parametreler
- source
- IOrderedQueryable<TSource>
IOrderedQueryable<T> Sıralanacak öğeleri içeren bir.
- keySelector
- Expression<Func<TSource,TKey>>
Her öğeden anahtar ayıklamak için bir işlev.
- comparer
- IComparer<TKey>
Anahtarları karşılaştırmak için bir IComparer<T> .
Döndürülenler
Öğeleri bir anahtara göre azalan düzende sıralanan bir koleksiyon.
Özel durumlar
source
veya keySelector
veya comparer
şeklindedir null
.
Örnekler
Aşağıdaki kod örneği, özel bir karşılaştırıcı kullanarak öğelerin ikincil sıralamasını azalan sırada gerçekleştirmek için nasıl kullanılacağını ThenByDescending<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>, IComparer<TKey>) gösterir.
public class CaseInsensitiveComparer : IComparer<string>
{
public int Compare(string x, string y)
{
return string.Compare(x, y, true);
}
}
public static void ThenByDescendingEx1()
{
string[] fruits =
{ "apPLe", "baNanA", "apple", "APple", "orange", "BAnana", "ORANGE", "apPLE" };
// Sort the strings first ascending by their length and
// then descending using a custom case insensitive comparer.
IEnumerable<string> query =
fruits.AsQueryable()
.OrderBy(fruit => fruit.Length)
.ThenByDescending(fruit => fruit, new CaseInsensitiveComparer());
foreach (string fruit in query)
Console.WriteLine(fruit);
}
/*
This code produces the following output:
apPLe
apple
APple
apPLE
orange
ORANGE
baNanA
BAnana
*/
Class CaseInsensitiveComparer
Implements IComparer(Of String)
Function Compare(ByVal x As String, ByVal y As String) As Integer _
Implements IComparer(Of String).Compare
' Compare values and ignore case.
Return String.Compare(x, y, True)
End Function
End Class
Sub ThenByDescendingEx1()
Dim fruits() As String = _
{"apPLe", "baNanA", "apple", "APple", "orange", "BAnana", "ORANGE", "apPLE"}
' Sort the strings first ascending by their length and
' then descending by using a custom case insensitive comparer.
Dim query = fruits.AsQueryable() _
.OrderBy(Function(fruit) fruit.Length) _
.ThenByDescending(Function(fruit) fruit, New CaseInsensitiveComparer())
Dim output As New System.Text.StringBuilder
For Each fruit As String In query
output.AppendLine(fruit)
Next
' Display the results.
MsgBox(output.ToString())
End Sub
' This code produces the following output:
' apPLe
' apple
' APple
' apPLE
' orange
' ORANGE
' baNanA
' BAnana
Açıklamalar
Bu yöntem, tür bağımsız değişkeni türlerden Expression<TDelegate> biri olan türünde en az bir parametreye Func<T,TResult> sahiptir. Bu parametreler için bir lambda ifadesi geçirebilirsiniz ve bu ifade bir Expression<TDelegate>olarak derlenir.
yöntemi, ThenBy<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>, IComparer<TKey>) kendisini oluşturulan genel bir MethodCallExpression yöntem olarak çağıran ThenBy<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>, IComparer<TKey>) bir oluşturur. Ardından parametresinin MethodCallExpressionCreateQuery<TElement>(Expression) özelliği tarafından temsil edilen yöntemine IQueryProviderProvidersource
iletir. Çağrının CreateQuery<TElement>(Expression) sonucu türüne IOrderedQueryable<T> döndürülür ve döndürülür.
Çağrıyı ThenBy<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>, IComparer<TKey>) temsil eden bir ifade ağacının yürütülmesi sonucunda oluşan sorgu davranışı, parametre türünün uygulanmasına source
bağlıdır. Beklenen davranış, öğelerinin source
her öğesinde çağrılarak keySelector
elde edilen anahtara göre azalan düzende ikincil bir sıralama gerçekleştirmesidir source
. Önceden oluşturulmuş tüm sıralama düzenleri korunur. comparer
parametresi, anahtar değerlerini karşılaştırmak için kullanılır.