C # как переставить значения между ключами? [Дубликат]

Это означает, что ваш код использовал ссылочную переменную объекта, которая была установлена ​​в нуль (т. е. она не ссылалась на экземпляр фактического объекта).

Чтобы предотвратить ошибку, объекты, которые могут быть пустыми, должны быть протестированы для 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
}
20
задан Nenad Dobrilovic 17 June 2011 в 18:04
поделиться

2 ответа

Предполагая, что вы имеете в виду «кросс-соединение» или «декартовое соединение»:

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 });

Если вы хотите что-то еще (как вы можете видеть из комментарии, термин «перекрестный продукт» вызвал некоторую путаницу), пожалуйста, отредактируйте свой вопрос соответствующим образом. Примером может быть очень удобно:)

57
ответ дан Jon Skeet 26 August 2018 в 08:20
поделиться

Для любопытства другой способ выполнить это (что дает тот же результат, что и ответ Джона Скита):

firstList.Join(secondList, x => true, y => true, (m, n) => new { m, n });
7
ответ дан Ross 26 August 2018 в 08:20
поделиться
Другие вопросы по тегам:

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