プロパティ LastName を含む Person というクラスがあります。これは、Person の姓に対応する文字列を反映しています。
次のようにリストを作成しました。
var People = List<Person>
私がやりたいのは、人を LastName プロパティでアルファベット順にソートすることです。
いくつかの例を見た後、私は試しました
People = People.OrderBy(p => p.LastName);
しかし、うまくいきません。
プロパティ LastName を含む Person というクラスがあります。これは、Person の姓に対応する文字列を反映しています。
次のようにリストを作成しました。
var People = List<Person>
私がやりたいのは、人を LastName プロパティでアルファベット順にソートすることです。
いくつかの例を見た後、私は試しました
People = People.OrderBy(p => p.LastName);
しかし、うまくいきません。
LINQ を使用すると、結果を次のように変換する必要がありますList<Person>
。
People = People.OrderBy(p => p.LastName).ToList();
OrderBy
を返すので、これをリストに戻すにIOrderedEnumerable<T>
は追加の呼び出しが必要です。ToList()
ただし、インプレースソートが効果的に必要なため、次をList<T>.Sort
直接使用することもできます。
People.Sort((p1, p2) => p1.LastName.CompareTo(p2.LastName));
最も簡単なのは使用することですToList():
People = People.OrderBy(p => p.LastName).ToList();
ToList
新しいオーダーを作成するに は が必要ですList<Person>
元のリストを並べ替える別のオプションは、次を使用することList.Sort
です。
People.Sort((p1,p2) => p1.LastName.CompareTo(p2.LastName));
orderby の結果を.Tolist()
以下のように変換する必要があります
var people = People.OrderBy(p => p.LastName).ToList();