В общем, задача довольно тривиальная, есть список некоторых слов
List words;
И некоторый текст, хранящийся в переменной
String text;
Нужно посчитать кол-во мест, где встречается любое слово из words, при условии, что оно перед запятой.
int GetCountOfWordsBeforeComma(string text, List<string> words)
{
var commaIndex = text.IndexOf(",");
if (commaIndex == -1) return words.Count();
var result = 0;
foreach(var word in words)
{
if (text.IndexOf(word) < commaIndex)
{
++result;
}
}
return result;
}
// Собственно, сам интерфейс оповещений
public interface INotification
{
void Notify(string text);
}
public class EmailNotification : INotification
{
public void Notify(string text)
{
// код по отправке почты
}
}
public class SmsNotification : INotification
{
public void Notify(string text)
{
// код по отправке смс
}
}
// ... Еще какие-нибудь классы оповещений
// В каком-нибудь классе, где может появиться ошибка
public class MaybeErrorClass
{
private INotification _notification;
public MaybeErrorClass(INotification notification)
{
// Класс не должен знать, по какому каналу оповещать об ошибках.
// Он работает с абстракцией
this._notification = notification;
}
// Очень простой пример метода, в котором ожидаем генерацию ошибки
public void DoSomething()
{
try {
// какой-то блок, в котором можем получить ошибку
}
catch (Exception e)
{
this._notification.Notify("А у нас тут ошибка!");
}
}
}
var maybeErrorEmail = new MaybeErrorClass(new EmailNotification());
var maybeErrorSms = new MaybeErrorClass(new SmsNotification());
for (i = 0; i < 81; i++) <-----
{
...
i--; <-----
while(arr1[i,0,8] > 0 && i > 0)
{
i--; <-----
}
if (i != 0)
{
i--; <-----
}