C# - szukanie znaku w stringu

0

Witam.
Metoda FindCharacter ma przeszukiwać łańcuch znaków w poszukiwaniu wybranego (w tym wypadku "x"). Jeśli go znajdzie zwróci jego indeks, w przeciwnym razie zwróci wartość -1.
Problem w tym, że ten przykład zawsze zwraca 0.
Możecie mi powiedzieć co jest źle?

using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication3
{
    class Program
    {
        static string lancuch;

        static void Main(string[] args)
        {
            Console.Write("Podaj lancuch zawierajacy 'x': ");
            lancuch = Console.ReadLine();
            Console.WriteLine("Index znaku: {0}", FindCharacter('x'));
            Console.ReadKey(true);
        }
        static int FindCharacter(char ch)
        {
            for (int i = 0; i < lancuch.Length; i++)
            {
                if (lancuch[i] == ch)
                {
                    string s = new string(ch, 0);
                    return lancuch.IndexOf(s);
                }
            }
            return -1;
        }
    }
}

Co do tej części:

string s = new string(ch, 0);

Tu ma być konwersja z char na string, znalazłem gdzieś że trzeba użyć:

new string(0, ch);

Ale to nie działało, VS podpowiedziało że najbliższa poprawna funkcja ma postać jaka jest w kodzie więc taką dałem. Najbardziej podejrzewam o błąd właśnie tę część.

EDIT:
Ok, już poradziłem sobie. Wystarczyło napisać

string s = ch.ToString();

oraz

return sCommand.IndexOf(s) + 1;

I działa.

Poza tym: czy jest jakaś wbudowana w c# metoda szukająca znaku w łańcuchu?
Pozdrawiam.

0
montezuma napisał(a)

Poza tym: czy jest jakaś wbudowana w c# metoda szukająca znaku w łańcuchu?

IndexOf wlasnie :|

0

metoda IndexOf w klasie string robi dokładnie to samo co Twoja funkcja ;)

Edycja: lekko spóźniony ;)

0

Ech, zupełnie pozapominałem te sprawy..
Ale wtopa [glowa] za bardzo żyję wakacjami ;p
Dzięki za zainteresowanie ;-)

1 użytkowników online, w tym zalogowanych: 0, gości: 1