• Как написать LINQ запрос?

    adminstock
    @adminstock
    ★ Решения для Debian ★
    Если имена через запятую, то разбивать нужно по запятой:
    movies.Where(x => x.Actors.Split(',').Contains(movieActors));

    С проверкой на пустоту:
    movies.Where(x => !String.IsNullOrEmpty(x.Actors) && x.Actors.Split(',').Contains(movieActors));


    Альтернативный вариант:
    movies.Where
    (
      x => 
      !String.IsNullOrEmpty(x.Actors) &&
      x.Actors.Split(',').Any((actor) => actor.Equals(movieActors))
    );

    Еще один:
    movies.Where(x => !String.IsNullOrEmpty(x.Actors) && x.Actors.Split(',').IndexOf(movieActors) != -1);


    Если имена содержат пробелы, еще более ресурсоемкий запрос с удалением пробелов будет примерно таким:
    movies.Where
    (
      x => 
      !String.IsNullOrEmpty(x.Actors) && 
      x.Actors.Split(',').Select(a => a.Trim()).Any((actor) => actor.Equals(movieActors))
    );


    При ошибке: does not recognize the method 'System.String[] Split(Char[])'
    вероятно придется получить данные (в массив):
    movies.ToList().Where
    (
      x => 
      !String.IsNullOrEmpty(x.Actors) && 
      x.Actors.Split(',').Select(a => a.Trim()).Any((actor) => actor.Equals(movieActors))
    );

    Плохое решение, лучше структуру данных поменять, хранить актеров в нормальном виде, чтобы не приходилось их разбивать на массивы. Вариант поиска подстроки наиболее хорош в плане производительности:
    movies = movies.Where(x => x.Actors.Contains(movieActors));
    Ответ написан
    Комментировать
  • Как сохранить файл из ULR через Save File Dialog в браузере?

    adminstock
    @adminstock
    ★ Решения для Debian ★
    Сервер должен отдавать HTTP-заголовок Content-Disposition:
    Content-Disposition: attachment; filename=любоеИмяФайла.xml

    Кодом будет примерно так:
    Response.AddHeader("content-disposition", string.Format("attachment; filename={0}.xml", "имяФайла"));
    Ответ написан
    Комментировать
  • Как написать редирект без дублирования страницы?

    adminstock
    @adminstock
    ★ Решения для Debian ★
    первый редирект работает нормально:
    RewriteRule ^$ page1 [L]

    Если написать после этого:
    RewriteRule ^page1$ / [R=301,L]

    Т.е. вы сначала делаете с главной перенаправление на page1, а затем с page1 на главную, а потом с главной на page1, а затем с page1 на главную, а потом с главной на page1, а затем с page1 на главную?... Ошибка: Превышено число перенаправления, за дополнительной информацией обращайтесь к администратору :-)

    Возможно проблема в опечатке, если страницы будут разными, то проблем по идее возникнуть не должно:
    # с главной на /page22222
    RewriteRule ^$ page22222 [R=301,L]
    # с /page11111 на главную
    RewriteRule ^page11111$ / [R=301,L]

    или со слешами:
    RewriteRule ^/$ page22222 [R=301,L]
    RewriteRule ^/page11111$ / [R=301,L]

    с /page11111 можно сразу перенаправлять на /page22222:
    RewriteRule ^/page11111$ page22222 [R=301,L]
    Ответ написан
    Комментировать
  • Как сделать редиректы с домена .com/ru/query/ на домен .ru/query/?

    adminstock
    @adminstock
    ★ Решения для Debian ★
    RewriteEngine on
    RewriteCond %{HTTP_HOST} ^example.com$
    RewriteRule ^/ru/(.+)$ http://example.ru/$1 [L,R=301]
    RewriteRule ^/de/(.+)$ http://example.de/$1 [L,R=301]
    Ответ написан
    7 комментариев