none
LINQ Как получить все различные сочетания чисел из двух целочисленных последовательностей? RRS feed

  • Вопрос

  • Например, есть 2 последовательности
    int[] A = new int[4] { 11, 44, 51, 7};
                int[] B = new int[6] {  1, 2, 3, 4,5,6 };

    Нужно получить (11,1),(11,2) и т.д. без повторов и (1,11) и т.п.
    15 февраля 2015 г. 8:22

Ответы

  • var result = A.SelectMany(x => B.Select(y => new {x, y}));

    var result2 = A.SelectMany(x => B, (x, y) => new { x, y });


    Не всегда можно напрямую перевести запрос из одного синтаксиса в другой. В данном конкретном случае я бы предпочёл синтаксис запросов (как в первом моём ответе), а не синтаксис методов.
    • Изменено Petalvik 15 февраля 2015 г. 11:36 добавил второй способ
    • Помечено в качестве ответа Энтомолог 15 февраля 2015 г. 12:04
    15 февраля 2015 г. 11:16

Все ответы

  • int[] A = new int[4] { 11, 44, 51, 7 };
    int[] B = new int[6] { 1, 2, 3, 4, 5, 6 };
    
    var result = from x in A
                 from y in B
                 select new { x, y };
    
    foreach (var n in result)
        Console.WriteLine(n.x + " " + n.y);

    15 февраля 2015 г. 9:41
  • А в точечном запросе можете написать?
    15 февраля 2015 г. 10:41
  • var result = A.SelectMany(x => B.Select(y => new {x, y}));

    var result2 = A.SelectMany(x => B, (x, y) => new { x, y });


    Не всегда можно напрямую перевести запрос из одного синтаксиса в другой. В данном конкретном случае я бы предпочёл синтаксис запросов (как в первом моём ответе), а не синтаксис методов.
    • Изменено Petalvik 15 февраля 2015 г. 11:36 добавил второй способ
    • Помечено в качестве ответа Энтомолог 15 февраля 2015 г. 12:04
    15 февраля 2015 г. 11:16