- PR -

foreachについて

1
投稿者投稿内容
damepg
大ベテラン
会議室デビュー日: 2003/03/19
投稿数: 229
お住まい・勤務地: 東京都内
投稿日時: 2004-05-11 17:01
C#による開発をしています。

下記の処理があります。
コンパイルするとforeachのところで「型charを型stringに変換できません」
というエラーメッセージが出力されます。
foreach文では文字列を変数aaに渡す方法を教えてください。

int i= 0;
foreach ( string aa in dtbl.Rows[i]["AA"].ToString() )
{
this.func(aa);
i++;
}
ぢゃん♪
大ベテラン
会議室デビュー日: 2003/06/12
投稿数: 208
お住まい・勤務地: 都内
投稿日時: 2004-05-11 17:15
基本的なことを敢えて聞きますが、
コード:
foreach ( string aa in dtbl.Rows["AA"].ToString() )


の変数aaに、何が入ることを期待していますか?

  • 1行1行、"AA"カラムの文字列全体を列挙したい?
  • 特定行での"AA"カラムの文字列の、1文字1文字を列挙したい?

……前者とは思いますが。前者ならDataRowで受けてToString()するとか……。

それで、foreachが何に対してのループとなるのか、よく考えてください。
(MSDNライブラリ「foreach、in」より)
コード:
foreach ( [i]type identifier in expression ) statement


のexpressionが、
コード:
foreach ( string aa in dtbl.Rows[i]["AA"].ToString() )


の場合は「dtbl〜〜.ToString()」の結果となる文字列ですから、当然のこととして、文字列(string)を分解したもの=文字(char)をループ対象として回します。

[ メッセージ編集済み 編集者: ぢゃん♪ 編集日時 2004-05-11 17:34 ]

[ メッセージ編集済み 編集者: ぢゃん♪ 編集日時 2004-05-11 17:35 ]
damepg
大ベテラン
会議室デビュー日: 2003/03/19
投稿数: 229
お住まい・勤務地: 東京都内
投稿日時: 2004-05-11 17:34
こんにちは!ご教授ありがとうございます。
前者を期待しています。
DataRowで受けてToString()することにしました。
ありがとうございました。

引用:

ぢゃん♪さんの書き込み (2004-05-11 17:15) より:
基本的なことを敢えて聞きますが、
コード:
foreach ( string aa in dtbl.Rows[i]["AA"].ToString() ) 


の変数aaに、何が入ることを期待していますか?

  • 1行1行、"AA"カラムの文字列全体を列挙したい?
  • 特定行での"AA"カラムの文字列の、1文字1文字を列挙したい?

……前者とは思いますが。前者ならDataRowで受けてToString()するとか……。


1

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