
Илья
15.02.2017
19:50:15
Это оптимальный вариант, учитывающий даже случай если они будут разного размера.
Вдруг. ?

Дмитрий
15.02.2017
19:50:19

Akhmed
15.02.2017
19:50:27
если они точно фиксированные, можно немного ускорить выполнение что бы не делать полный проход ?
var count = dict.First(pair => pair.Value.Length);

Google

Akhmed
15.02.2017
19:50:57
ну в целом да

Илья
15.02.2017
19:51:23
Так сказать унифицировать.

Akhmed
15.02.2017
19:53:13
да мне это вообще не надо. По мне идеально когда код работает максимально быстро. У тебя свои идеалы. Не смею больше беспокоить )

Илья
15.02.2017
19:53:26

? Райзя ?
15.02.2017
19:56:29

Дмитрий
15.02.2017
19:58:58
Да, вот только вариант с ограничением new() на уровне генерик-метода в случае отсутствия конструктора без параметров сфейлится на этапе компиляции и пошлёт всех лесом, а в случае использования Type и метода Activator.CreateInstance(type) - смачно шлёпнется во время выполнения.
Поэтому - имхо - первый вариант надёжнее.

Max
15.02.2017
19:59:38
вчера был вопросик, как определить еслть ли в бд уже обект
List<long> Id_db = (db.Users.Select(ie => ie.pk)).ToList();
userName = userName.Where(x => !Id_db.Contains(x.pk)).Select(x => x).ToList();
решил вот так
т.е. сначала выгружаются все ид из бд
и справнивается с моим списком

Дмитрий
15.02.2017
20:00:07
едрическая сила

Google

Max
15.02.2017
20:00:13
но мне кажется что это не очень хорошее решение
мб есть решение поудобнее что ли?

Victor
15.02.2017
20:03:32

Дмитрий
15.02.2017
20:04:06
long userID = 100500L;
bool exists = db.Users.Any(user => user.Id == userID);

Victor
15.02.2017
20:04:42
Да, эни если узнать есть,нет

Max
15.02.2017
20:04:56
да этого вполне достаточно
просто знать есть или нет
я смотрел в сторону find там вроде как ищет по базе тоже

Дмитрий
15.02.2017
20:05:43
как вариант

Ilya
15.02.2017
20:05:51
Тебя эни чем не устроил?

Max
15.02.2017
20:06:18
тем что я про него не знал)) теперь буду знать, спасибо за помощ

Sergey
15.02.2017
20:07:52
привычка. я в свое время целиком отказался от вара. он конечно короче и проще, чем целый тип указывать, но иногда много удобнее сразу тип видеть

Дмитрий
15.02.2017
20:07:53

Max
15.02.2017
20:08:21
да вот я ток вчера ее первый раз пощупал, не знаю еще всех ее возможностей...

Сергей
15.02.2017
20:09:11
"целиком отказался от вара" « религия какая то

Ilya
15.02.2017
20:09:57

Max
15.02.2017
20:11:21

Sergey
15.02.2017
20:11:55

Ilya
15.02.2017
20:12:04
Ну на сервере же ты структуру создаешь, не?

Max
15.02.2017
20:12:45
не

Google

Ilya
15.02.2017
20:16:20
Ну ок

Дмитрий
15.02.2017
20:39:32
я бы назвал это вкусовщиной
+
тоже стараюсь использовать var по минимуму
явное написание имени типа как-то дисциплинирует, что ли, и упрощает понимание кода другими разработчиками
а если вокруг этой красоты ещё и тесты хорошие, годные накручены - вообще песня

Axm
15.02.2017
20:45:12
Скажите, а EF достаточно умен, строит нормальные запросы к бд? А то я привык все руками писать, учитывая план выполнения и данные, которые нужны. Просто выглядит удобно, конечно, пишешь себе обычный linq и работает. Но насколько оптимально?

Sergey
15.02.2017
20:46:07

Сергей
15.02.2017
20:46:47
Дисциплинирует? Какой ужас...

Sergey
15.02.2017
20:46:50

Axm
15.02.2017
20:46:52

Сергей
15.02.2017
20:49:41
Вы ещё и this пишите небось?

Axm
15.02.2017
20:52:50
Нет, зачем?

Сергей
15.02.2017
20:53:15
Нагляднее же

Axm
15.02.2017
20:54:33
Это почему?

Сергей
15.02.2017
21:02:20
Если переменная объявлена с конструктором или литералом, то в явном объявлении типа смысла нет, с другой стороны читабельности коду это не прибавляет а только зашумляет код

? Райзя ?
15.02.2017
21:40:12

Sergey
15.02.2017
21:56:06

? Райзя ?
15.02.2017
22:03:42
Но конечно можно и
let array : Array<Entity> = Array<Entity>()

Sergey
15.02.2017
22:05:58
Но это же не тот чат. Или свифтокодеры хвастают своей религией везде, где только можно? ?

? Райзя ?
15.02.2017
22:07:43

Google

? Райзя ?
15.02.2017
22:08:27
Родина вам дала вар. Нет, не хочу. Хочу писать типы

Sergey
15.02.2017
22:09:13
var xx = GetSomething();
давай, определяй тип
можно конечно навести мышкой, потупить, и посмотреть в попапе

? Райзя ?
15.02.2017
22:10:15
Конечно можно
И из контекста и названия обычно и так все понятно
Сингл класс сингл респонсабилити
Все такое

Admin
ERROR: S client not available

Sergey
15.02.2017
22:12:01
В фантазиях да, а в реальности бывает и нет

Max
15.02.2017
22:12:55
как проще всего указать что данные в столбце бд должны быть уникальными?
в конструкторе вижуал ток первичный ключ можно задать, а там же вроде еще какие то ключи есть, вроде как они за это овтечают

Владимир
15.02.2017
22:16:28

Sergey
15.02.2017
22:25:26

Max
15.02.2017
22:31:08
блин думал работа с базой усорит программу, а оказалось чтопроверить 200 строка на то есть ли они в листе куда быстрее чем проверить есть ли они в базе на 3к объектов....

Sergey
15.02.2017
22:34:33

Max
15.02.2017
22:35:47
через any

Sergey
15.02.2017
22:36:09
код покаж

Max
15.02.2017
22:36:54
не ну как, конечно берет список и по одной строке делает запрос

Google

Max
15.02.2017
22:37:23
using (BlackListUser db = new BlackListUser())
{
List<User> tmp = new List<User?);
foreach (User user in userName)
{
if (!db.Users.Any(user_ => user_.pk == user.pk))
tmp.Add(user);
}
userName = tmp;
}
как то так

Sergey
15.02.2017
22:37:45
не надо так делать
надо один раз в БД спросить есть ли у нее группа айдишников, а не на каждый айдишник

Max
15.02.2017
22:39:44
List<long> Id_db = (db.Users.Select(ie => ie.pk)).ToList();
userName = userName.Where(x => !Id_db.Contains(x.pk)).Select(x => x).ToList();
было вот так
но мне казалось это не правильно
хотя на практике работало оно куда быстрее чем то что сейчас

? Райзя ?
15.02.2017
22:40:31

Max
15.02.2017
22:41:57
в начально варианте идет 1 запрос на столбец ид и потом уже сверяет
получается меьнше запросов, если я правильно понимаю работу селект

Slava
15.02.2017
22:47:20

Gid
15.02.2017
22:48:20

Max
15.02.2017
22:48:39
а что не так7

Gid
15.02.2017
22:48:40
Могу даж за тебя свечку поставить в храме, только забудь этот нейминг

Max
15.02.2017
22:48:50
аа

Gid
15.02.2017
22:48:55
не id_db
а databaseId
или что-то такое
камелкейс там
и паскалькейс
Эта группа больше не существует