@IT会議室は、ITエンジニアに特化した質問・回答コミュニティ「QA@IT」に生まれ変わりました。ぜひご利用ください。
- PR -

csvファイルのソート(c#)

投稿者投稿内容
uken
会議室デビュー日: 2006/05/25
投稿数: 14
投稿日時: 2006-05-25 16:57
c#でcsvファイルを読み込み、任意の項目でソートして出力する方法を教えて下さい。
csvをカンマ区切りでワークの配列に全件入れてからソートする無難な方法しか思いつかないのですが、いい方法がありましたらお願いします。
vincent
大ベテラン
会議室デビュー日: 2004/07/09
投稿数: 142
投稿日時: 2006-05-25 17:03
「無難な方法」でいいんじゃないですか?

配列に入れて並べ替えるにしても、DataSetを使うにしても、
基本は全件読み込み>並べ替え>出力に変わりはないと思います。
ぼのぼの
ぬし
会議室デビュー日: 2004/09/16
投稿数: 544
投稿日時: 2006-05-25 17:35
CSV→DataTable→DataView とか。
さかもと
ぬし
会議室デビュー日: 2004/05/14
投稿数: 586
投稿日時: 2006-05-25 17:55
さかもとです。

逆に無難な方法以外の方が難しいかと。
かるあ
ぬし
会議室デビュー日: 2003/11/16
投稿数: 1190
お住まい・勤務地: センガワ→ムサシノ
投稿日時: 2006-05-25 18:15
わんくま同盟のライブラリを使ってみるとか
http://blogs.wankuma.com/naka/archive/2006/03/17/21965.aspx
dotnetmemo
常連さん
会議室デビュー日: 2006/04/29
投稿数: 24
投稿日時: 2006-05-25 21:24
ソートではないですが、CSVであればこんなのもあるようです。
http://filehelpers.sourceforge.net/
R・田中一郎
ぬし
会議室デビュー日: 2005/11/03
投稿数: 979
投稿日時: 2006-05-26 10:49
引用:

ukenさんの書き込み (2006-05-25 16:57) より:
c#でcsvファイルを読み込み、任意の項目でソートして出力する方法を教えて下さい。
csvをカンマ区切りでワークの配列に全件入れてからソートする無難な方法しか思いつかないのですが、いい方法がありましたらお願いします。


上記の場合だと、無難な方法がベストな気がします。
項目を確認しながらソートしたり、ファイルに書き戻したり・・・という場合だとDataGridViewに収めてソートはDataGridViewに任せるとかになるかと思いますが。
uken
会議室デビュー日: 2006/05/25
投稿数: 14
投稿日時: 2006-05-29 17:39
スレッド主ですが、結局以下の方法でソートをしました。
@データ量が未知なため、まず1行を1データとしてArrayListに全件追加する。
Aレコードの数、CSVで区切ってある要素の数を調べて2次元配列にコピー
B外部ファイルからどこでソートするなどのパラメータを取得して任意の場所でソートする。

それでとりあえず成功したのですが、データ量が数万件になったらどうしようと思い、
ArrayListから2次元配列にコピーする際に、ArrayList配列の添字をlong型にしたら
『'System.Collections.ArrayList.this[int]' に最も適しているオーバーロード メソッドには無効な引数がいくつか含まれています。』
と出ました。
ArrayListの添え字はintしかできないのでしょうか?

スキルアップ/キャリアアップ(JOB@IT)