Permalänk
Medlem

CS1929 error i C#

class Program { static void Main(string[] args) { First(); Second(); Console.ReadKey(); static void First() { Console.WriteLine("Type a number between 0 and 10: "); int myNumber1 = int.Parse(Console.ReadLine()); string retur = Console.ReadLine(); Console.WriteLine("Okay lets see if it's in our array "); int[] numbers = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; for (int i = 0; i < numbers.Length; i++) { Console.WriteLine(numbers[i]); } Console.WriteLine("Does your number " + myNumber1 + " exist? " + numbers.Contains(myNumber1)); } static void Second() { string[] fillMe = new string[10]; Console.Write("Fill the array with 10 numbers "); for (int i = 0; i < fillMe.Length; i++) { fillMe[i] = Console.ReadLine(); } Console.WriteLine("Type a number: "); int myNumber2 = int.Parse(Console.ReadLine()); string retur = Console.ReadLine(); Console.WriteLine("Okay, let's see if it's in your array "); foreach (var number in fillMe) { Console.WriteLine(number); } Console.WriteLine("Did your number exist? " + fillMe.Contains(myNumber2)); } } }

Hur fixar jag så att sista + fillMe.Contains(myNumber2)); funkar?
försökt byta till int [] fillMe = new... men då vill inte fillMe[i] = Console.ReadLine(); funka.
känns som ett så lätt fel men jag kan inte komma på vart jag kan ändra?

Permalänk
Medlem
Skrivet av karu83:

class Program { static void Main(string[] args) { First(); Second(); Console.ReadKey(); static void First() { Console.WriteLine("Type a number between 0 and 10: "); int myNumber1 = int.Parse(Console.ReadLine()); string retur = Console.ReadLine(); Console.WriteLine("Okay lets see if it's in our array "); int[] numbers = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; for (int i = 0; i < numbers.Length; i++) { Console.WriteLine(numbers[i]); } Console.WriteLine("Does your number " + myNumber1 + " exist? " + numbers.Contains(myNumber1)); } static void Second() { string[] fillMe = new string[10]; Console.Write("Fill the array with 10 numbers "); for (int i = 0; i < fillMe.Length; i++) { fillMe[i] = Console.ReadLine(); } Console.WriteLine("Type a number: "); int myNumber2 = int.Parse(Console.ReadLine()); string retur = Console.ReadLine(); Console.WriteLine("Okay, let's see if it's in your array "); foreach (var number in fillMe) { Console.WriteLine(number); } Console.WriteLine("Did your number exist? " + fillMe.Contains(myNumber2)); } } }

Hur fixar jag så att sista + fillMe.Contains(myNumber2)); funkar?
försökt byta till int [] fillMe = new... men då vill inte fillMe[i] = Console.ReadLine(); funka.
känns som ett så lätt fel men jag kan inte komma på vart jag kan ändra?

För lite kontext antar jag att du menar följande felmeddelande;
Error CS1929 'string[]' does not contain a definition for 'Contains' and the best extension method overload 'Queryable.Contains(IQueryable, TSource)' requires a receiver of type 'IQueryable'

Om du då läser felmeddelandet så ser du att en Array inte definierar någon metod vid namn Contains

Istället för Array kan du därför köra List, alternativt skapa en loop och på så vis se om din array innehåller det du letar efter. Se följande kodsnutt nedan:

// spara ett returvärde så du vet om du hittar en matchning eller ej var res = false; // Loopa igenom din array foreach(var s in string_array){ // Om något index i din array matchar din variabel, sätt returvärdet till true och avbryt loopen. if(s.Equals(mitt_nummer.ToString())){ res = true; break; } } // Kolla returvärdet som sparades i res Console.WriteLine("Matchade det? " + res);

Visa signatur

NZXT H510 Flow MSI B450 Tomahawk MAX
AMD Ryzen 5800X3D RX 7900XTX Kingston Fury 64GB

Permalänk
Medlem

@Pamudas:
jo precis. Men tyvärr så måste jag använda array. Jag föredrar annars List 9/10 gånger....
Det går inte att lösa utan list eller?

Permalänk
Medlem
Skrivet av karu83:

@Pamudas:
jo precis. Men tyvärr så måste jag använda array. Jag föredrar annars List 9/10 gånger....
Det går inte att lösa utan list eller?

Kolla längst ned i posten du svarade på. Där har du ett exempel på en loop.

Permalänk
Medlem
Skrivet av Curik:

Kolla längst ned i posten du svarade på. Där har du ett exempel på en loop.

Oj, jag är så ledsen. jag måste ha varit super trött för jag såg inget meddelande. Det löste sig fint i alla fall. Tack så mycket!
Det ända jag stör mig på att jag måste trycka enter efter man skrivit in sitt första nummer.

Permalänk
Medlem
Skrivet av karu83:

Oj, jag är så ledsen. jag måste ha varit super trött för jag såg inget meddelande. Det löste sig fint i alla fall. Tack så mycket!
Det ända jag stör mig på att jag måste trycka enter efter man skrivit in sitt första nummer.

Ta bort raden:
string retur = Console.ReadLine();
Så slipper du det

Visa signatur

NZXT H510 Flow MSI B450 Tomahawk MAX
AMD Ryzen 5800X3D RX 7900XTX Kingston Fury 64GB

Permalänk
Medlem
Skrivet av Pamudas:

Ta bort raden:
string retur = Console.ReadLine();
Så slipper du det

Jepp såg den med. Den är borta. men som sagt att tvingas trycka enter efter varje Int.parse är störigt men hittar ingen lösning om jag inte vill skriva om allt toll TryParse som jag inte orkar

Edit: NVM det funkar! haha så sliten. dags för en paus! tack !!

Permalänk
Medlem
Skrivet av karu83:

Jepp såg den med. Den är borta. men som sagt att tvingas trycka enter efter varje Int.parse är störigt men hittar ingen lösning om jag inte vill skriva om allt toll TryParse som jag inte orkar

Edit: NVM det funkar! haha så sliten. dags för en paus! tack !!

Hade du haft 0-9 istället så hade du ju kunnat använda Console.ReadKey och skippat Enter helt. Lite omständigt att skriva 10 då bara

Visa signatur

Windows 11 Pro | Intel i7 8700 | ASUS Prime Z370-P | Corsair 16GB 3000MHz | ASUS GTX 1080 | Fractal Design Define S | Corsair RM750x | Hyper 212 EVO

Permalänk
Medlem
Skrivet av Joppis:

Hade du haft 0-9 istället så hade du ju kunnat använda Console.ReadKey och skippat Enter helt. Lite omständigt att skriva 10 då bara

Att kunna skriva in 10 löser man lätt genom använda en speciell knapp för att berätta för programmet att man har skrivit klart.

Visa signatur

3900X, RX 6700 XT, 32gb RGB RAM.