
StreamReader sr = new StringReader(filePath);
foreach (Strins s in sr.ReadLine())
{
}
上記プログラムでは
型'char'を'string'に変換できません。
と出てきて無理でした。
http://stackoverflow.com/questions/286533/filest …
此方を参考に、下記プログラムを書きました。
private static IEnumerable<string> ReadLine()
{
string str;
while ((str = sr.ReadLine()) != null)
{
yield return str;
}
}
private static void loop()
{
foreach (string str in ReadLine())
{
}
}
1. 下記のものは動くのですが、なぜ最初に書いたものではダメなのでしょうか?
2. もっと綺麗(スリム)に書くことはできないでしょうか?
3.
string str;
while ((str = sr.ReadLine()) != null)
↓
while((string str = sr.ReadLine()) != null)
とするとエラーが出るのはなぜでしょうか?
宜しくお願いします。
No.1ベストアンサー
- 回答日時:
1. 逆に,なぜダメではないと思ったのでしょうか。
StreamReader.ReadLineの戻り値,foreachの機能から,エラーであることは容易に想像がつきますが。
2. using + whileループが通常一番の書き方です。
TextReaderをIEnumerable<string>によく変換するのであれば,拡張メソッド作るのもよいでしょうが。
3. 宣言は式ではないからです。
ありがとうございました。
最近foreachに興味をもち、
forやwhileをみるとforeachに書き換えたい気持ちをおさえられなくて><
実用では無理にforeachを利用せずにusing+whileで書いた方がよさそうですね。
No.2
- 回答日時:
1. StreamReader.ReadLineは配列型を返さないから。
2. 普通はEndOfStreamで判断してReadLineするwhileループで、わざわざ反復子を定義してまでforeach使う理由はないんじゃないかなぁ。
3. #1でも言われてますが宣言文は式じゃないので、式のように代入結果を参照することはできません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C# ListBoxのアイテムをユーザ...
-
C言語単方向リストのメモリリー...
-
特定の文字列が一致する行から...
-
C#のStreamReaderでのforeach
-
【Java8以降】csvファイルの複...
-
c#で(",")区切りのcsvファイル...
-
STL mapからの要素の削除
-
C#で省略可能引数を使用した引...
-
GDI+ DrawString() で指定範囲...
-
マルチスレッドで同時にFTPアッ...
-
strcmp関数などでの複数の文字...
-
C言語のポインターに関する警告
-
ループ処理の際、最後だけ","を...
-
System.err. printlnとSystem.o...
-
ORA-01858: 数値を指定する箇所...
-
Javaで改行などが出来ないのです。
-
IF関数でEmpty値を設定する方法。
-
ボタンの複数割り当てについて
-
system.out.printが出力されない
-
実数からの小数部の取得
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C# ListBoxのアイテムをユーザ...
-
C#でIPアドレスの取得について
-
string→CStringの型変換について
-
「指定されたキャストは有効で...
-
【Java8以降】csvファイルの複...
-
jap実行時のTomcatのエラーに困...
-
特定の文字列が一致する行から...
-
C#での関数テーブルの作り方
-
PHPのSHA256変換について
-
Delphiで改行文字の置換がうま...
-
GDI+ DrawString() で指定範囲...
-
strcmp関数などでの複数の文字...
-
C# 他のアプリケーションから複...
-
c#で(",")区切りのcsvファイル...
-
SQLインジェクション
-
ArrayListを改良したい
-
HTML文書の文字コードの判定法
-
phpマニュアルの見方
-
2つのリストのマージ方法について
-
strncpy後のatoiがおかしい
おすすめ情報