任意の並べ替えのためにLINQを使用してください
質問
我々はATT1、値、b、c及びATT2は値1,2,3を持つことができますすることができ、属性のATT1及びATT2を持つエンティティを持っているとしましょう。我々はIComparableを実装せずに、任意のソート規則を適用することにより、コレクション内の項目を並べ替えることができるようにLINQを使用することが可能です。ビジネスは、コレクション内の一部の画面項目に一つの方法や他の画面で他のいくつかの方法でソートされている必要がありますし、私は問題に直面しています。例えば、ルールは、アイテムは、次いで、「C」、すなわち「B」が最初に表示されるようにし、「A」、ソートする必要があり、各グループ内で、「3」は、最初に、次に「1」、次に「2」と述べることができます。
解決
確かに。あなたがしてください、任意の「ソート順」の多かれ少なかれどんな種類を返す述語でOrderBy
を使用することができます。たとえばます:
objectsWithAttributes.OrderBy(x =>
{
// implement your "rules" here -- anything goes as long as you return
// something that implements IComparable in the end. this code will sort
// the enumerable in the order 'a', 'c', 'b'
if (x.Attribute== 'a')
return 0;
else if (x.Attribute== 'c')
return 1;
else if (x.Attribute== 'b')
return 2;
}).ThenBy(x =>
{
// implement another rule here?
});
所属していません StackOverflow