C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[4]: ObservableCollectionの要素並び替え方法


(過去ログ 133 を表示中)

[トピック内 5 記事 (1 - 5 表示)]  << 0 >>

■78488 / inTopicNo.1)  ObservableCollectionの要素並び替え方法
  
□投稿者/ まさ (9回)-(2016/01/19(Tue) 11:21:42)

分類:[C#] 

ObservableCollectionの要素並び替え方法として、LINQを利用する方法があることは理解しています。

this.OrderBy(p => p.id)

とすることで簡単に並び替えることができます。

OrderByで並び替えする限界、つまり、(優先順位が複数あるといった)少し複雑な条件で要素の並び替えをするためには、よい方法があるのでしょうか。


どうかよろしくお願いいたします
引用返信 編集キー/
■78489 / inTopicNo.2)  Re[1]: ObservableCollectionの要素並び替え方法
□投稿者/ Hongliang (398回)-(2016/01/19(Tue) 11:30:52)
> OrderByで並び替えする限界、つまり、(優先順位が複数あるといった)少し複雑な条件で要素の並び替え
(OrderByの後の)ThenByですかね?
引用返信 編集キー/
■78490 / inTopicNo.3)  Re[2]: ObservableCollectionの要素並び替え方法
□投稿者/ まさ (10回)-(2016/01/19(Tue) 14:39:40)
>>(優先順位が複数あるといった)少し複雑な条件で要素の並び替え
> (OrderByの後の)ThenByですかね?

ありがとうございます。うまくいきました。


あと一点、よろしいでしょうか?

NULLを含む数値の並び替えで、NULL値を数値と別の挙動で、最大値や最小値として扱いたいのです。
引用返信 編集キー/
■78491 / inTopicNo.4)  Re[3]: ObservableCollectionの要素並び替え方法
□投稿者/ Hongliang (399回)-(2016/01/19(Tue) 14:48:00)
Nullable<int>型って事でいいんですかね。
Int32.MaxValue, Int32.MinValueが本来の値域に入らないのなら
.OrderBy(_ => _.Value ?? Int32.MaxValue)
とかで十分ですが、本来の値域に入るならちょっと面倒ですね。
.Select(_ => new { Obj = _, Val = _.Value ?? Int64.MaxValue })
.OrderBy(_ => _.Val)
.Select(_ => _.Obj)
とか。
引用返信 編集キー/
■78492 / inTopicNo.5)  Re[4]: ObservableCollectionの要素並び替え方法
□投稿者/ まさ (12回)-(2016/01/19(Tue) 17:14:40)
> .OrderBy(_ => _.Value ?? Int32.MaxValue)

勉強になりました。ありがとうございます
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -