Permalänk

ToUpper

Kan man ha ToUpper i en foreach?
Alltså användaren ska söka och målet är att den ska kunna få rätt även om den har skrivit med små/stora bokstäver fast originalet inte är det.
Jag fattar inte vart i sånt fall jag kan sätta ToUpper i foreach

Permalänk
Medlem

Inte helt säker på vilket språk, men generellt:

for(type var : array) {
tempUpperCase = ToUpper(var);
if (temp.equals( "whatever" ))
return true;
}

Så andra raden i for-loopen

Visa signatur

i5-7600k . GTX 1080 . 16 GB

Permalänk
Medlem
Skrivet av Islandesess:

Kan man ha ToUpper i en foreach?
Alltså användaren ska söka och målet är att den ska kunna få rätt även om den har skrivit med små/stora bokstäver fast originalet inte är det.
Jag fattar inte vart i sånt fall jag kan sätta ToUpper i foreach

Kan du inte bara söka utan att vara case sensitive då?

Visa signatur

Dator: ASUS Prime 470x PRO - AMD 5800X3D - MSI RTX 2070 ARMOR OC - EVGA SuperNova G3 650W - Fractal Design Define R5 - Noctua NH-D15 - ASUS Xonar DGX. Kringutrustning: Corsair M65 Pro - Qpad MK-90 - Sennheiser 350 SE. ASUS MG279Q.

Permalänk
Medlem

Det ska inte vara några problem att köra ToUpper i en foreach (oavsett språk skulle jag vilja påstå).

foreach(var s in strings) { if(s.ToUpper() == "WHATEVER") return true; }

Har inte exakt greppat hur formateringen fungerar med code-taggarna. Tog C# som exempel men det bör vara liknande i andra språk.

Permalänk
Skrivet av Forsgren:

Det ska inte vara några problem att köra ToUpper i en foreach (oavsett språk skulle jag vilja påstå).

foreach(var s in strings) { if(s.ToUpper() == "WHATEVER") return true; }

Har inte exakt greppat hur formateringen fungerar med code-taggarna. Tog C# som exempel men det bör vara liknande i andra språk.

gick ej.
Har en lista i början så den säger att det ej går med List[]

Permalänk
Medlem
Skrivet av Islandesess:

gick ej.
Har en lista i början så den säger att det ej går med List[]

Språk? Du bör visa en kodsnutt åtminstone, det går inte att förstå vad du menar med "Har en lista i början…".

Visa signatur

Kom-pa-TI-bilitet

Permalänk
Medlem
Skrivet av Islandesess:

gick ej.
Har en lista i början så den säger att det ej går med List[]

Som ovan skrev, vilket språk pratar vi om? Är det ens en lista av strings, eller är det objekt? För om det är objekt behöver du ta ut rätt värde från objektet - exempelvis om det är Name i Person-objektet person:

person.Name

Permalänk

Jag är väldigt ny på detta.

räcker det att se

List<string[]> stringVektor = new List<string[]>(); bool kör = true; while (kör)

case 3: Console.Write("\n\tSök i loggbokrn, skriv titel du söker: "); string sökOrd = Console.ReadLine(); for (int i = 0; i < stringVektor.Count; i++) { string[] logg = stringVektor[i]; if (logg[i].ToUpper == sökOrd.ToUpper()); Console.WriteLine("\n\tTitel: " + stringVektor[i].First() + "\n\tText: " + stringVektor[i].Last()); } Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("\n\tDet finns ej i loggboken, tryck valfri tangent för att komma vidare"); Console.ReadLine(); break;

Dock ändat till for ist för forech, men den säger "Operation '==' cannot be applied to operends of typ 'method group' and 'string'

Permalänk
Medlem

Ser ut som c#

1) "if (logg[i].ToUpper == sökOrd.ToUpper());"
Du har missat () på vänstra ToUpper.

2) För att jämföra strängar i c# med eller utan skiftlägeskänslighet så använd Equals-funktionen. Se här:
https://docs.microsoft.com/en-us/dotnet/csharp/how-to/compare...

3) Du bör verkligen skriva variabler på engelska. "Kör" och "sökOrd" sitter inte väl.

Permalänk
Skrivet av adzer:

Ser ut som c#

1) "if (logg[i].ToUpper == sökOrd.ToUpper());"
Du har missat () på vänstra ToUpper.

2) För att jämföra strängar i c# med eller utan skiftlägeskänslighet så använd Equals-funktionen. Se här:
https://docs.microsoft.com/en-us/dotnet/csharp/how-to/compare...

3) Du bör verkligen skriva variabler på engelska. "Kör" och "sökOrd" sitter inte väl.

Tack!

Dock såklart nästa problem att jobba med, att inte felmeddelandet kommer upp fast det blev rätt

Permalänk
Medlem
Skrivet av Islandesess:

Tack!

Dock såklart nästa problem att jobba med, att inte felmeddelandet kommer upp fast det blev rätt

Jag är långt ifrån en expert på c#, men ett semikolon efter if-satsen bör avsluta denna.

Ändra

if (logg[i].ToUpper == sökOrd.ToUpper()); Console.WriteLine("\n\tTitel: " + stringVektor[i].First() + "\n\tText: " + stringVektor[i].Last());

Till:

if (logg[i].ToUpper() == sökOrd.ToUpper()) { Console.WriteLine("\n\tTitel: " + stringVektor[i].First() + "\n\tText: " + stringVektor[i].Last()); }

Permalänk
Skrivet av adzer:

Jag är långt ifrån en expert på c#, men ett semikolon efter if-satsen bör avsluta denna.

Ändra

if (logg[i].ToUpper == sökOrd.ToUpper()); Console.WriteLine("\n\tTitel: " + stringVektor[i].First() + "\n\tText: " + stringVektor[i].Last());

Till:

if (logg[i].ToUpper() == sökOrd.ToUpper()) { Console.WriteLine("\n\tTitel: " + stringVektor[i].First() + "\n\tText: " + stringVektor[i].Last()); }

tyvärr funkade inte det.
Får kolla på det mer i morgon

Permalänk
Medlem
Skrivet av Islandesess:

tyvärr funkade inte det.
Får kolla på det mer i morgon

Rekommenderar att du tar en titt på Visual Studios debugger om du inte har gjort det redan
Länkar till en introduktion nedan:
https://docs.microsoft.com/en-us/visualstudio/debugger/debugg...

Visa signatur

| EVGA Z170 FTW | i7 6700k | ASUS RTX 3070 | 16GB DDR4 3200MHz | Cooler Master V850 | Samsung 840 Evo 250GB + 2x WD Black 500GB + Seagate 2TB SSHD + Samsung 970 Evo M.2 500GB |

Permalänk
Medlem

Kan ha fel då jag är långt ifrån en expert, men ser ut som du skapar en ny String array som heter logg som du sätter till samma som stringVektor[i]. Osäker här om det ens är rätt att dra ut objekt från en lista på detta sätt...

Om det nu fungerar så kommer logg kommer ha 1 element som är nummer 0. Du kollar i kodraden under efter logg[i] och om i är mer än 0 kommer det inte fungera.

Gör om det till en foreach istället så går det nog lättare!

Permalänk
Medlem
Skrivet av beejac:

Kan ha fel då jag är långt ifrån en expert, men ser ut som du skapar en ny String array som heter logg som du sätter till samma som stringVektor[i]. Osäker här om det ens är rätt att dra ut objekt från en lista på detta sätt...

Om det nu fungerar så kommer logg kommer ha 1 element som är nummer 0. Du kollar i kodraden under efter logg[i] och om i är mer än 0 kommer det inte fungera.

Gör om det till en foreach istället så går det nog lättare!

Listan "stringVektor" innehåller arrayer av strängar.
var logg = stringVektor[i] kommer alltså ge variabeln logg typen string[] med samtliga index som stringVektor[i] innehåller

Visa signatur

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

Permalänk
Medlem
Skrivet av Pamudas:

Listan "stringVektor" innehåller arrayer av strängar.
var logg = stringVektor[i] kommer alltså ge variabeln logg typen string[] med samtliga index som stringVektor[i] innehåller

Tack, det har du rätt i! Samma problem kvarstår väl dock att om i är högre än antal element i arrayen så kommer det inte fungera.

Permalänk
Medlem
Skrivet av beejac:

Tack, det har du rätt i! Samma problem kvarstår väl dock att om i är högre än antal element i arrayen så kommer det inte fungera.

Så är det Saknas helt enkelt en till loop för att gå igenom varje index i loggen.

Visa signatur

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

Permalänk
Skrivet av Pamudas:

Så är det Saknas helt enkelt en till loop för att gå igenom varje index i loggen.

precis, det saknades en bool. Nu är det viktigaste löst, nu är dt bara finjusteringar kvar.

Tackar alla för hjälpen