質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Q&A

解決済

3回答

1109閲覧

C#での配列のソート

McCaslin

総合スコア12

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

0グッド

0クリップ

投稿2017/11/08 02:31

編集2017/11/08 02:37

###前提・実現したいこと
C#でList<String[]>の配列の中身をソートする関数を作っています

配列の内容としては、
ID, 名前となっていて、IDの後半が時間になっています
ex) 1111_121212
下6桁の121212が時間(12時12分12秒)です

この時間を使って昇順降順に並べ替えたい場合、どのように記述したら良いでしょうか

頭の1111~を見てソートされてしまい、良い記述方法が思いつきません
宜しくお願い致します。

###発生している問題・エラーメッセージ

###該当のソースコード

###試したこと
様々なサイトを参考にしてみましたが、時間を切り分けて実装する方法がわからなくなりました

###補足情報(言語/FW/ツール等のバージョンなど)
C#、FW4.7.02046
VisualStudio 2012

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

C#

1var list = new List<string[]> 2{ 3 new string[]{ "1111_121212", "Name1" }, 4 new string[]{ "2222_111111", "Name2" } 5}; 6 7// 昇順 8var sortedList = list.OrderBy(a => a[0].Split('_').Last()).ToList(); 9// 降順の場合は↓ 10//var sortedList = list.OrderByDescending(a => a[0].Split('_').Last()).ToList(); 11foreach (var a in sortedList) 12 Console.WriteLine($"[{a[0]}, {a[1]}]");

投稿2017/11/08 03:18

root_jp

総合スコア4666

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

McCaslin

2017/11/08 04:42

ありがとうございます。 昇順と降順どちらも成功しました。たすかりました。
guest

0

単純に後ろの文字列だけを見てソートしたいならこれで十分か。

List<string> list = new List<string>(); list.OrderBy(n=> n.Split('_').Last());

投稿2017/11/08 02:54

kiichi54321

総合スコア1984

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

McCaslin

2017/11/08 04:43

ご指導ありがとうございました。無事完成しました。
guest

0

文字列で頑張ろうとせずに、オブジェクトにすればいいだけでは。

class User { public string Name{get;set;} public DateTime Date{get;set;} } List<User> users = new List<User>() users.Orderby(n=>n.Date)

投稿2017/11/08 02:40

kiichi54321

総合スコア1984

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問