Аналог BiPredicate в C # - PullRequest
0 голосов
/ 01 марта 2019

Я Java Engineer и мне нужно написать то же решение с Java на C #.Теперь мне нужно переписать этот пример:

private static final BiPredicate<SomeObject, String> predicate = 
    (someObject, someId) -> {
        if (someId.startsWith("someText")) {
            // some logic
            return booleanResult;
        }
        return anotherBooleanResult;
    };

BiPredicate - это функциональный интерфейс, который имеет метод, который принимает два объекта и возвращает логический результат в зависимости от реализации, а главное преимущество перед обычным методом состоит в том, что онможет быть использован в Java Stream следующим образом:

someList.stream().filter(someObject => predicate.test(someObject, someId));

1 Ответ

0 голосов
/ 01 марта 2019

Вы можете использовать Func в C #

Func<SomeObject, string, bool> predicate = (someObject, someId) =>
{
  if (someId.StartsWith("someText"))
  {
      // some logic
      return booleanResult;
  }
  return anotherBooleanResult;
};

Последний универсальный аргумент - это тип возвращаемого значения, все остальные аргументы - это типы параметров, передаваемых методу.Это также работает с более чем 2 аргументами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...