Linq - вернуть все, когда фильтр пуст [дубликат]

Одним из возможных решений является кодирование данных в вашем приложении и использование декодирования во время выполнения (когда вы хотите использовать эти данные). Я также рекомендую использовать progaurd, чтобы затруднить чтение и понимание декомпилированного исходного кода вашего приложения. например, я поместил закодированный ключ в приложение, а затем использовал метод декодирования в своем приложении для декодирования моих секретных ключей во время выполнения:

// "the real string is: "mypassword" "; 
//encoded 2 times with an algorithm or you can encode with other algorithms too
public String getClientSecret() {
    return Utils.decode(Utils
            .decode("Ylhsd1lYTnpkMjl5WkE9PQ=="));
}

Декомпилированный исходный код защищенного приложения:

 public String c()
 {
    return com.myrpoject.mypackage.g.h.a(com.myrpoject.mypackage.g.h.a("Ylhsd1lYTnpkMjl5WkE9PQ=="));
  }

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

/**
 * @param input
 * @return decoded string
 */
public static String decode(String input) {
    // Receiving side
    String text = "";
    try {
        byte[] data = Decoder.decode(input);
        text = new String(data, "UTF-8");
        return text;
    } catch (UnsupportedEncodingException e) {
        e.printStackTrace();
    }
    return "Error";
}

Декомпилированная версия:

 public static String a(String paramString)
  {
    try
    {
      str = new String(a.a(paramString), "UTF-8");
      return str;
    }
    catch (UnsupportedEncodingException localUnsupportedEncodingException)
    {
      while (true)
      {
        localUnsupportedEncodingException.printStackTrace();
        String str = "Error";
      }
    }
  }

, и вы можете найти так много классов шифрования с небольшим искать в google.

1
задан Wesley Skeen 27 March 2014 в 13:49
поделиться

1 ответ

Вы можете сделать это с условием, которое явно проверяет часть customerSearch:

.Where
(
    c=>
        (customerSearch.Initial == null || c.Firstname.StartsWith(customerSearch.Initial)) &&
        (customerSearch.Surname == null || c.Surname  == customerSearch.Surname)           &&                        
        (customerSearch.Email == null || c.Email    == customerSearch.Email)             &&
        (customerSearch.PostCode == null || c.Postcode == customerSearch.PostCode)
)

Если вам нужно проверить пустые строки, а не null, измените условие соответственно.

4
ответ дан dasblinkenlight 24 August 2018 в 02:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: