Вы можете преобразовать оба метода в один, передав Func<string, bool>
и используя эту функцию внутри вашего первого. Итак, то, что у вас есть сейчас, становится:
public static TextElement Find(this ArrayTextElement<TextElement> list, Func<string, bool> predicate)
{
try
{
return list.Items.First(item => predicate(item.Text));
}
catch (Exception)
{
throw new NotFoundException($"Requested element with text: '{text}' wasn't found.");
}
}
И для того, чтобы вызвать его с помощью Contains
или Equals
, вы должны сделать это:
public void UsingTheMethod()
{
ArrayTextElement<TextElement> list = new ArrayTextElement<TextElement>();
string someText = string.Empty;
Find(list, s => s.Equals(someText));
Find(list, s => s.Contains(someText));
}