9

エラーが発生しました:

'string []'には'Cast'の定義が含まれておらず、タイプ'string []'の最初の引数を受け入れる拡張メソッド'Cast'が見つかりませんでした(usingディレクティブまたはアセンブリ参照がありませんか?)

次のコードで:

return mNames.Cast().ToArray();

どのような使用ディレクティブまたはアセンブリ参照が必要ですか?どうすればそのようなことを見つけることができますか?

私はC#と.NETの初心者です。仕事を成し遂げるためにコードをコピーしているだけなので、あまり技術的にならないでください。

4

5 に答える 5

25

(1)C#3.0以降で作業していることを確認してください

(2)コードに次のものが含まれていることを確認します。

using System.Linq;

(3).Castはジェネリックメソッドであるため、次のようにtypeパラメーターを指定する必要があります。

return mNames.Cast<AnotherType>().ToArray();
于 2012-06-27T08:34:17.330 に答える
5

using System.Linq;これは通常、ファイルの先頭が欠落している場合に発生します。

また、.NET3.5以降を使用する必要があります。System.LinqアセンブリSystem.Core.dllにあります。これは、.NET3.5以降を使用するプロジェクトにデフォルトで含まれています。

編集

よく調べてみると、Enumerable.Cast()メソッドは一般的であり、キャスト先の型を渡す必要があるため、そのコードは記述どおりに機能しません。mNames.Cast<object>().ToArray();

于 2012-06-27T08:34:48.863 に答える
2

通常、Cast<T>()拡張メソッドは、のような型引数を使用して呼び出しますmNames.Cast<SomeType>()

とにかく、mNamesすでにのようですがstring[]、何にキャストしたいですか?から割り当てることができるため、にキャストするobject必要はありません。object[]string[]

于 2012-06-27T08:39:03.197 に答える
2

「キャスト」を明示的に使用しなくても、Linq式を使用して「System.Linqを使用する」ことを忘れると、このコンパイルエラーも発生します。

于 2012-12-14T07:01:53.667 に答える
-1

使用するprimary.AddRange(secondary);

于 2013-10-08T22:27:03.610 に答える