Это означает, что ваш код использовал ссылочную переменную объекта, которая была установлена в нуль (т. е. она не ссылалась на экземпляр фактического объекта).
Чтобы предотвратить ошибку, объекты, которые могут быть пустыми, должны быть протестированы для null перед тем, как использовать.
if (myvar != null)
{
// Go ahead and use myvar
myvar.property = ...
}
else
{
// Whoops! myvar is null and cannot be used without first
// assigning it to an instance reference
// Attempting to use myvar here will result in NullReferenceException
}
Предполагая, что вы имеете в виду «кросс-соединение» или «декартовое соединение»:
var query = from x in firstList
from y in secondList
select new { x, y }
Или:
var query = firstList.SelectMany(x => secondList, (x, y) => new { x, y });
Если вы хотите что-то еще (как вы можете видеть из комментарии, термин «перекрестный продукт» вызвал некоторую путаницу), пожалуйста, отредактируйте свой вопрос соответствующим образом. Примером может быть очень удобно:)
Для любопытства другой способ выполнить это (что дает тот же результат, что и ответ Джона Скита):
firstList.Join(secondList, x => true, y => true, (m, n) => new { m, n });