J'essaie d'utiliser la méthode Array.Contains () en C # et, pour une raison quelconque, la compilation a échoué, même si je crois que j'utilise le C # 4.0, et C # devrait le prendre en charge dans les versions 3.0 et ultérieures.
if (! args.Contains ("-m"))
Console.WriteLine ("You must provide a message for this commit.");
Et je reçois cette erreur:
Main.cs (42,15): Erreur CS1061: 'System.Array' ne contient pas de définition pour 'Contains' et aucune méthode d'extension 'Contains' n'accepte un premier argument de type 'System.Array' (vous êtes manque une directive d'utilisation ou une référence d'assemblage?)
Je compile à partir de la ligne de commande, sans option: "csc Main.exe".
Vous devez ajouter using System.Linq;
au début de votre programme.
Avez-vous oublié using System.Linq
?
En passant, si vous ne pouvez pas utiliser LINQ, il existe de nombreuses autres options telles que Array.Exists
.
Si vous ne voulez pas utiliser linq, essayez
((IList<string>)args).Contains("-m")
J'ai eu le même problème et j'avais
using System.Linq
C’est parce que j’essayais de comparer chaîne à int , mais de toute façon cela disait
'System.Array' ne contient pas de définition pour 'contient'
utilisez System.Linq Cela me fait chaque fois
Assurez-vous que vous utilisez la version correcte de CSC (csc /?) - vous avez besoin de la version 2010 pour compiler pour 4.0 . Vous devrez peut-être également ajouter des bibliothèques supplémentaires (option/r) pour que la compilation réussisse.
Les réponses disant d’inclure System.Linq sont tout à fait exactes, mais il existe une autre cause à ce problème. Si le type de l'argument pour .Contains () ne correspond pas au type du tableau, vous obtiendrez cette erreur.
public class Product
{
public long ProductID {get;set;}
}
public IEnumerable<Product> GetProductsByID(int[] prodIDs)
{
using (var context = new MyDatabaseContext())
{
return context.Products.Where(product => prodIDs.Contains(product.ProductID)); // ['System.Array' does not contain a definition for 'Contains'] error because product.ProductID is long and prodIDs is an array of ints.
}
}