2016-05-21 17 views
-2

Contains()でlinqクエリを使用しています。 「CharにContains()の定義が含まれていない」というエラーが表示されます。 System.Linqという名前空間も使用しています。それでも、この例外が発生しています。これは私のコードです。CharにContains()の定義が含まれていません

var requiredfiles = new[] { "xxx", "yyy", "zzz" }; 

var messages = from file in requiredfiles 
       select myfiles.Any(j => j.Contains(file)) 
        ? string.Format("{0}:true", file) 
        : string.Format("{0}: false", file); 

ここで、myfilesは文字列配列です。

+3

あなたは正確に何をしようとしていますか?期待される結果は何ですか?あなたが言っているように、myfilesが文字列配列の場合、コードは正常に動作しますが、文字列の場合はコンパイラがエラーを生成します。 – user3185569

+4

'myfiles'とは何ですか? – yaakov

+0

それはそうではないようです... –

答えて

1

myfilesのタイプを確認すると、stringと思われます。文字列をループすると、繰り返しごとにcharが返されます。 CharクラスにはContainsというメソッドはありません。

myfiles.Any(j => j.Contains(file)) 

myfilesが文字列の場合は動作しません。つまり、jはcharです。

myfilesが文字列の配列であれば動作します。つまり、jは文字列です。

ContainsメソッドはStringクラスの一部です。

関連する問題