75. string Contains extension method

ראינו בעבר (טיפ מספר 5) כי יש overload לstring של Equals המאפשר לנו להשוות מחרוזות בהתעלמות מcase sensitive.

לפעמים אנחנו רוצים לבדוק דברים אחרים, כמו Contains.

למרבה הצער, לו אין overload דומה.

במקום לכתוב ככה:

1
2
3
4
if (first.ToUpper().Contains(second.ToUpper()))
{
// ...
}

מה שלא יעיל, מאחר ואנחנו עושים ToUpper סתם (יוצרים אובייקט חדש, מחשבים אותו ומשווים וכו’).

במקום זאת, נוכל ליצור Extension Method כזה ולהשתמש בו:

1
2
3
4
5
6
7
8
9
10
11
12
public static bool Contains(this string givenString,
string value,
StringComparison comparisonType)
{
if (givenString == null)
{
throw new ArgumentNullException("givenString",
"Received null");
}
return (givenString.IndexOf(value, comparisonType) >= 0);
}

בדרך זו נוכל לבדוק את התנאי בצורה הבאה:

1
2
3
4
5
if (first.Contains(second,
StringComparison.InvariantCultureIgnoreCase))
{
// ...
}

יותר יעיל ויותר יפה.

סופ"ש מורחב טוב

שתף