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

わんくま同盟

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

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

ツリー一括表示

型のキャストについて /kenta (18/05/16(Wed) 11:55) #87378
Re[1]: 型のキャストについて /魔界の仮面弁士 (18/05/16(Wed) 12:04) #87380
  └ Re[2]: 型のキャストについて /kenta (18/05/16(Wed) 13:55) #87384 解決済み


親記事 / ▼[ 87380 ]
■87378 / 親階層)  型のキャストについて
□投稿者/ kenta (3回)-(2018/05/16(Wed) 11:55:36)

分類:[C#] 

こんにちは

ファイルからデータを読みこんで配列に格納しています。
問題:0以上を抽出したいのに型が統一できない。

while (reader.Peek() >= 0)
{
string line = reader.ReadLine(); //一行取得
string [] array = line.Split(',');//カンマで区切る

DataRow row = ds.Tables[0].NewRow();

for (int i = 0; i < 50; i++)
{
if (array[i] > 0)        ←ここでエラー(演算子">"を'string'と'int'型のオペランドに適応すことはできない)
{
row[i] = array[i];//全計測行格納
}
}
       }

以上よろしくお願いします。
[ □ Tree ] 返信 編集キー/

▲[ 87378 ] / ▼[ 87384 ]
■87380 / 1階層)  Re[1]: 型のキャストについて
□投稿者/ 魔界の仮面弁士 (1669回)-(2018/05/16(Wed) 12:04:50)
No87378 (kenta さん) に返信
> if (array[i] > 0)

array[i] == "" とか array[i] == "XYZ" だった場合は、どうしたいのでしょうか?

常に「整数として扱える文字列」がセットされていると保証できるなら、
 if ( int.Parse(array[i]) > 0 )
のように書くことはできます。


非数値の場合がありえるなら、String.Compare メソッドを使った文字列比較を行うか
(文字列比較の場合、"1" < "10" < "2" の関係になることに注意)
あるいは、int.TryParse メソッドを使うなどしましょう。
[ 親 87378 / □ Tree ] 返信 編集キー/

▲[ 87380 ] / 返信無し
■87384 / 2階層)  Re[2]: 型のキャストについて
□投稿者/ kenta (4回)-(2018/05/16(Wed) 13:55:42)
No87380 (魔界の仮面弁士 さん) に返信

常に「整数として扱える文字列」がセットされていると保証できます。

無事に解決しました。ありがとうございます。
またよろしくお願いします。
解決済み
[ 親 87378 / □ Tree ] 返信 編集キー/


管理者用

- Child Tree -