5

誰かがここで要素を分解し、それらが何であるかを理解するのを手伝ってくれませんか?

public static IOrderedEnumerable<TSource> OrderByDescending<TSource, TKey>(
    this IEnumerable<TSource> source,
    Func<TSource, TKey> keySelector
)

TSourceとTKeyとは何ですか?keySelectorとは何ですか?IOrderedEnumerableとは一体何ですか?

Func <>は何をしますか?

なぜMSDNはそれほど不可解なのですか?

4

2 に答える 2

11

壊す

  • TSource:これは、注文する必要があるコレクション内の要素のタイプです
  • TKey:要素の順序付けに使用されるタイプキー。
  • Func<TSource,TKey>:コレクション内の特定の要素のキーを返すデリゲート

この関数は本質的にソート関数です。そのため、コレクション内の要素を比較する方法が必要です。この特定のメソッドは、特定のオブジェクトに対して、それらをソートできる対応するキー値があることを前提としています。

たとえば、次のクラスの学生を例にとってみましょう

class Student { 
  string Name { get; set; }
  ...
}

インスタンスのコレクションを名前で並べ替えたい場合Studentは、次のようにすることができます

IEnumerable<Student> col = GetTheStudents();
var ordered = col.OrderByDescending( x => x.Name );

この場合、値は次のようになります。

  • TSource:Student
  • TKey:String
  • Func<TSource,TKey>:これはラムダ式で渡されますx => x.Name
于 2009-12-01T16:21:07.137 に答える
3

私はちょうど疑問に思います、MSDNで正確に不明確なものは何ですか?トピックは次のとおりです:http://msdn.microsoft.com/en-us/library/bb548916.aspx

そして、ここにそのトピックからのあなたの質問に対するいくつかの答えがあります:

タイプパラメータ

TSource-ソースの要素のタイプ。

TKey-keySelectorによって返されるキーのタイプ。

パラメーター

source-順序付けする一連の値。

keySelector-要素からキーを抽出する関数。

comparer-キーを比較するためのIComparer。

戻り値

要素がキーに従って降順でソートされるIOrderedEnumerable。

また、備考と例があります。ここに投稿したのは、メソッドの単なる署名です。

于 2009-12-01T19:02:40.773 に答える