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

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

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

Re[2]: List型をファイルに出力する方法


(過去ログ 141 を表示中)

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

■82622 / inTopicNo.1)  List型をファイルに出力する方法
  
□投稿者/ C#ビギナー (5回)-(2017/01/20(Fri) 18:09:33)

分類:[.NET 全般] 

List<String>型のデータをLinqの機能を利用し、
全件ファイルに出力する方法がわからず困っております。

できないならループを回せと言われるかもしれませんが、
Linqを勉強中の身のため、ご支援を頂けると幸いです。

よろしくお願いします。

引用返信 編集キー/
■82624 / inTopicNo.2)  Re[1]: List型をファイルに出力する方法
□投稿者/ 魔界の仮面弁士 (1070回)-(2017/01/20(Fri) 18:44:52)
No82622 (C#ビギナー さん) に返信
> List<String>型のデータをLinqの機能を利用し、
> 全件ファイルに出力する方法がわからず困っております。


『Linqの機能』というのが何を指しているのか分かりませんが、
列挙される IEnumerable<string> な値をテキストとして保存するということならば
System.IO.File.WriteAllLines メソッドを使うのが簡単かと思います。
引用返信 編集キー/
■82627 / inTopicNo.3)  Re[1]: List型をファイルに出力する方法
□投稿者/ Azulean (772回)-(2017/01/20(Fri) 22:48:07)
2017/01/21(Sat) 14:01:57 編集(投稿者)

No82622 (C#ビギナー さん) に返信
> List<String>型のデータをLinqの機能を利用し、
> 全件ファイルに出力する方法がわからず困っております。

LINQ は基本的に集合をつなげたり、絞り込んだり、形式を変換したりと、結果を得るための方法と言えます。
このため、結果を返さないメソッドというのは LINQ の本筋とは外れてきます。
https://msdn.microsoft.com/ja-jp/library/bb397676.aspx
(統合言語クエリ (LINQ: Language-Integrated Query) 。クエリは「問い合わせ」)

どうしても、メソッドチェーンで書きたいのであれば、自分でファイルに出力する拡張メソッドを書くことになります。
それよりはすでに提案のある File.WriteAllLines を使うか、foreach で処理するかがわかりやすくて良いと思っています。
引用返信 編集キー/
■82628 / inTopicNo.4)  Re[2]: List型をファイルに出力する方法
□投稿者/ Azulean (773回)-(2017/01/21(Sat) 10:53:50)
2017/01/21(Sat) 10:53:58 編集(投稿者)
No82627 (Azulean さん) に返信
> どうしても、メソッドチェーンで書きたいのであれば、自分でファイルに出力する拡張メソッドを書くことになります。
> それよりはすでに提案のある File.WriteAllLines を使うか、foreach で処理するかがわかりやすくて良いと思っています。

拡張メソッドの一例として。
もっとも、拡張メソッド内で File.WriteAllLines を使っているだけなので、同じような処理をたくさん書きたいということでもなければ、メソッドチェーンにこだわらない方がいいと思っています。

var source = Enumerable.Range(1, 10).Select(number => number.ToString());
source.ToTextFile(@"c:\temp\hogehoge.txt");

// 拡張メソッドにするためにはstaticクラスに書かなければならない。
public static class LinqFileExtensions
{
    public static void ToTextFile(this IEnumerable<string> texts, string filePath)
    {
        File.WriteAllLines(filePath, texts.ToArray());
    }
}

引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -