Hainesy - Vinny の投稿に対するあなたのコメントから判断すると、あなたは彼の要点を見逃していると思います... [私はこれをあなたの質問に対する直接の回答として提示しているわけではありません。考えられる混乱を解消するために、Vinny のポイントについて詳しく説明しているだけです。それについて。
このオブジェクトを考えてみましょう:
public class Person
{
public string FirstName;
public string MiddleInitial;
public string LastName;
public DateTime DateOfBirth { get; set; }
public int Age
{
get
{
return (int)DateTime.Today.Subtract(DateOfBirth).TotalDays / 365;
}
}
}
ここで、People という名前の Person セットアップのリストがあるとします。
var people = new List<Person>();
そして、私のリストにはたくさんの人がいます。
var sortedByLastName = people.OrderBy(o => o.LastName);
var sortedByFirstName = people.OrderBy(o => o.FirstName);
var sortedByAge = people.OrderBy(o => o.Age);
var sortedByAgeDesc = people.OrderByDescending(o => o.Age);
var sortedByLastThenFirst = people.OrderBy(o => o.LastName).ThenBy(o => o.FirstName);
これは複雑なオブジェクト用です。文字列のようなプリミティブ型のリストがある場合:
var strings = new List<string>();
オブジェクトの一部のプロパティではなく、それら自体に基づいて並べ替えたい
var sorted = strings.OrderBy(s => s);
これにより、オブジェクトがソートされます。IComparable を実装して既定の比較子で並べ替える複雑なオブジェクトを並べ替える場合も、同じ考え方を使用できます。
EntitySet は、プリミティブ型であろうと複雑なオブジェクトであろうと、同様の方法で並べ替えることができます。