2011-06-16 7 views
0

これは初心者の質問ですが、私は簡単な解決策を探しています。C#でCsvファイルを読み取るための同じデータで1つの列をチェックしてください。

DataTableにcsvファイルをロードしました。私のCSVは、このような4つの列(カラーコード、SirtID、開始日、終了日)が含まれてみましょう:

 
#ffffff,s0012,2011/05/01,2011/05/11 
#ffffff,s0013,2011/05/03,2011/05/10 
#ffffff,s0022,2011/06/01,2011/06/11 
#ffffff,s0032,2011/05/01,2011/05/12 

私はCSVファイルには、このように二つ以上の異なるColorCodesが含まれている場合、エラーメッセージを返すようにしたい:

 
#ffffff,s0012,2011/05/01,2011/05/11 
#ffffff,s0013,2011/05/03,2011/05/10 
#ffffff,s0022,2011/06/01,2011/06/11 
#000000,s0032,2011/05/01,2011/05/12 

CSVファイルに含まれるColorCodeが1つのみであるかどうかを確認する最適な方法は何ですか?

答えて

1

はあなたが行うことができ

DataTable dt = new DataTable(); 
    ..... 
    .... 
    if(dt.Rows.Count > 0) 
    if(dt.Select("ColorCode <> " + dt.Rows[0]["ColorCode"].ToString()).Length > 0) 
     throw new Exception("Two or more different ColorCodes exists"); 
2

あなたは、LINQを使用することができます。

var query = myTable.AsEnumerable(); 
// Assuming there is one value at least. 
var first = query.First().Field<string>("ColorCode"); 
if (query.Any(a => a.Field<string>("ColorCode") != first)) 
{ 
    throw new Exception(); 
}