Exception. Linq
От: Аноним  
Дата: 03.10.11 12:24
Оценка:
Привет.

Не могу понять почему такой код падает


HashSet<string> userChannels = new HashSet<string>(users.Select(u => u.code));
var stores = DataContext.Stores; // (List<Store>)
Func<string, string> checkChannel = (stringId) =>
{
return userChannels.FirstOrDefault(ch => ch.Contains(stringId));
};
var storesWithoutUser = stores.Where(s => checkChannel(s.StoreID) != null);


код спотыкается и вылетает в эксепшн "Object reference not set to an instance of an object "
в Func. Что ему не нравится?
Re: Exception. Linq
От: Lloyd Россия  
Дата: 03.10.11 12:31
Оценка: +1
Здравствуйте, Аноним, Вы писали:

А>код спотыкается и вылетает в эксепшн "Object reference not set to an instance of an object "

А>в Func. Что ему не нравится?

Какой-то из кодов user-а — null.
Re[2]: Exception. Linq
От: Аноним  
Дата: 03.10.11 12:40
Оценка:
Здравствуйте, Lloyd, Вы писали:

L>Здравствуйте, Аноним, Вы писали:


А>>код спотыкается и вылетает в эксепшн "Object reference not set to an instance of an object "

А>>в Func. Что ему не нравится?

L>Какой-то из кодов user-а — null.


гениально! Сэнкс!
Re[3]: Exception. Linq
От: Lloyd Россия  
Дата: 03.10.11 12:47
Оценка:
Здравствуйте, Аноним, Вы писали:

L>>Какой-то из кодов user-а — null.


А>гениально! Сэнкс!


Так HashSet не нужен, замените на простой массив.
Re[4]: Exception. Linq
От: Аноним  
Дата: 03.10.11 14:37
Оценка: :)
Здравствуйте, Lloyd, Вы писали:

L>Здравствуйте, Аноним, Вы писали:


L>>>Какой-то из кодов user-а — null.


А>>гениально! Сэнкс!


L>Так HashSet не нужен, замените на простой массив.


так вроде же везде пишут, что когда надо значение свойство объекта из массива объектов сравнить со списком нужных значений, то лучше использовать HashSet. He так?
Re[5]: Exception. Linq
От: Lloyd Россия  
Дата: 03.10.11 14:41
Оценка:
Здравствуйте, Аноним, Вы писали:

L>>Так HashSet не нужен, замените на простой массив.


А>так вроде же везде пишут, что когда надо значение свойство объекта из массива объектов сравнить со списком нужных значений, то лучше использовать HashSet. He так?


HashSet нужен когда вы ищете точное вхождение эдемента в набор.
В вашем же случае, вы ищете элемент, который удовлетворяет какому-то предикату, в этом случае использование HashSet-а ничего не дает.
Re[6]: Exception. Linq
От: Аноним  
Дата: 03.10.11 14:53
Оценка:
Здравствуйте, Lloyd, Вы писали:

L>Здравствуйте, Аноним, Вы писали:


L>>>Так HashSet не нужен, замените на простой массив.


А>>так вроде же везде пишут, что когда надо значение свойство объекта из массива объектов сравнить со списком нужных значений, то лучше использовать HashSet. He так?


L>HashSet нужен когда вы ищете точное вхождение эдемента в набор.

L>В вашем же случае, вы ищете элемент, который удовлетворяет какому-то предикату, в этом случае использование HashSet-а ничего не дает.

т.е. не хуже, не лучше. понял. Спасибо!
Re[7]: Exception. Linq
От: Lloyd Россия  
Дата: 03.10.11 14:58
Оценка:
Здравствуйте, Аноним, Вы писали:

L>>HashSet нужен когда вы ищете точное вхождение эдемента в набор.

L>>В вашем же случае, вы ищете элемент, который удовлетворяет какому-то предикату, в этом случае использование HashSet-а ничего не дает.

А>т.е. не хуже, не лучше. понял. Спасибо!


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