[C#]エラー:CS0266 型System.Collections.Generic.IEnumerableをSystem.Linq.Enumerableに暗黙的に変換できません。

カテゴリ: C# | タグ:

C#でLinqを使ったプログラムを作成していると、下記のエラーが発生することがあります。

エラー CS0266  型 'System.Collections.Generic.IEnumerable<string>' を 
'System.Linq.Enumerable' に暗黙的に変換できません。
明示的な変換が存在します (cast が不足していないかどうかを確認してください)   

原因

これは、プログラム中でIEnumerableクラスを使用している時、ネームスーペースをしてしておらず、System.Collections.GenericのIEnumerableなのか、System.LinqのIEnumerableなのか曖昧なためです。

対処法

以下のようにネームスペースを指定すればよいです。

変更前

IEnumerableクラスのネームスペースが未指定

public IEnumerable<string> getTitles() {
    ...

    var titles = foo.Select( x => x.Title );
    return titles;
}

変更後

戻り値の型指定でIEnumerableクラスのネームスペースを明示する

public System.Collections.Generic.IEnumerable<string> getTitles() {
    ...

    var titles = foo.Select( x => x.Title );
    return titles;
}

もしくは、ファイルの先頭で、using句を使ってネームスペースを明示する

using System.Collections.Generic;
...

public IEnumerable<string> getTitles() {
    ...

    var titles = foo.Select( x => x.Title );
    return titles;
}

Amazonでおトクに買い物する方法
AmazonチャージでポイントGET


Amazonは買いもの前にAmazonギフト券をチャージしてポイントをゲットしないと損!

こちらもおススメ

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です