C# i string contains, equals

Wpis z kategorii – C# dla początkujących.

Tak się składa, że po wielu miesiącach pracy raczej w środowisku javowym, odświeżam sobie C#. Jako że nie do końca ufam swojej pamięci oraz nie uznaję czegoś takiego jak „wiedza teoretyczna” – każdą rzecz muszę doświadczalnie sprawdzić. Programując, często mam otwartą drugą instancję Visuala, w której testuję, czy aby na pewno dana funkcja zachowa się tak, jak podejrzewam. Przeważnie funkcje są grzeczne, a moja pamięć całkiem niezła;) Wolę jednak sprawdzić te drobiazgi, niż potem zastanawiać się, dlaczego mój „produkcyjny” całkiem-duży-kawałek-programu nie działa.

Dziś o stringach w C#, konkretnie o ich porównywaniu i sprawdzaniu, czy string zawiera inny napis.

var part = "this";
var full = "this is some text";
Console.WriteLine(full.Contains(part));//true. Nic nadzwyczajnego. 
// Contains jest wrażliwy na wielkości znaków:
Console.WriteLine(full.ToUpper().Contains(part));//false
Console.WriteLine(full.Contains(part.ToUpper()));//false
Console.WriteLine(full.Contains(part.ToUpperFirstLetter()));//false
Console.WriteLine(full.ToUpperFirstLetter().Contains(part));//false

Metoda ToUpperFirstLetter() to Extension method – jej szkic znalazłam na StackOverflow, a oto pełna implementacja:

public static class Extension
{
  public static string ToUpperFirstLetter(this string value)
  {
    return (string.IsNullOrEmpty(value)) ?
      String.Empty
      : (value.First().ToString().ToUpper() + value.Substring(1));
  }
}

Analogicznie jak Contains zachowuje sie metoda Equals.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *