私はList<T>
Tのintプロパティの1つで昇順にソートするにはどうすればよいですか?
これに対して手動で独自のメソッドを作成できることは承知していますが、これを簡潔に行う方法はありますかList<T>.Sort
(T の int プロパティによる); ?
私はList<T>
Tのintプロパティの1つで昇順にソートするにはどうすればよいですか?
これに対して手動で独自のメソッドを作成できることは承知していますが、これを簡潔に行う方法はありますかList<T>.Sort
(T の int プロパティによる); ?
Enumerable Orderby を使用して、そのプロパティで並べ替えることができます。
List<yourType> yourCollection = YourSourceList.OrderBy(e=>e.YourProperty).ToList();
はい、使用できますList<T>.Sort
:
list.Sort((t1, t2) => t1.IntProperty.CompareTo(t2.IntProperty));
効率は劣りますが読みやすいアプローチは、以下を使用することEnumerable.OrderBy
です。
list = list.OrderBy(t => t.IntProperty).ToList();
これを試して:
List<T> lst=List<T>.OrderBy(x => x.Property).ToList();
回答として受け入れられたラムダ式アプローチを使用する権限がない人は、以下のアプローチに従うことができます。核となるアイデアは、IComparable<Person>
オブジェクト内で定義された特定のプロパティ/フィールドをチェックすることによって実装することです。ここではそれが ' Person
' です。
public class ConsoleApp
{
private static void Main(string[] args)
{
List<Person> p = new List<Person>();
p.Add(new Person() {Age = 25, Name = "Jo"});
p.Add(new Person() {Age = 10, Name = "Jo"});
p.Add(new Person() {Age = 2, Name = "Jo"});
p.Sort();
}
}
public class Person : IComparable<Person>
{
public string Name { get; set; }
public int Age { get; set; }
public int CompareTo(Person other)
{
return other == null ? 1 : Age.CompareTo(other.Age);
}
}
ASC/DESC を並べ替えるには、このコードをリストに追加してみてください
List<HRDocumentCheckList> ser=new List<HRDocumentCheckList>();
ser.OrderByDescending(q => q.Document.Id).ToList();
それがあなたを助けることを願っています